緯度と経度を使用して 2 点間の距離を計算するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-29 01:56:02
オリジナル
218 人が閲覧しました

How to Calculate Distance Between Two Points Using Latitude and Longitude?

緯度と経度の 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!