緯度と経度の 2 つの点が与えられた場合の距離の計算
緯度と経度を使用して点間の距離を決定することは、一般的な GIS タスクです。指定した半径内の点を見つけるには、数式と SQL クエリを活用できます。
距離計算の式
1 つの方法は、Haversine 公式を使用することです。球上の 2 点間の距離:
<code class="python">def get_distance(lat1, lon1, lat2, lon2, unit='Mi'): theta = lon1 - lon2 distance = (math.sin(math.radians(lat1)) * math.sin(math.radians(lat2))) + \ (math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * \ math.cos(math.radians(theta))) distance = math.acos(distance) distance = math.degrees(distance) distance = distance * 60 * 1.1515 if unit == 'Km': distance = distance * 1.609344 return round(distance, 2)</code>
半径検索の SQL クエリ
別のオプションは、距離式を使用して MySQL クエリを使用することです:
<code class="sql">SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`Latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * cos((`Latitude`*pi()/180)) * cos(((".$longitude."- `Longitude`)* pi()/180))))*180/pi())*60*1.1515) as distance FROM `MyTable` HAVING distance >= ".$distance.";</code>
これらの方法を適用すると、点間の距離を効率的に計算し、指定された位置から目的の半径内にある点を見つけることができます。
以上が緯度と経度を使用して 2 点間の距離を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。