ホームページ > データベース > mysql チュートリアル > MySQL で 2 つの地理座標間の距離を計算するにはどうすればよいですか?

MySQL で 2 つの地理座標間の距離を計算するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-15 16:45:18
オリジナル
232 人が閲覧しました

How to Calculate the Distance Between Two Geographic Coordinates in MySQL?

緯度と経度を使用した MySQL の地理座標間の距離の決定

クエリは球面余弦則の式を利用して 1 点間の距離を計算しますそしてその他すべて。特定の 2 点間の距離を調べるには、クエリを次のように変更します。

SELECT a.city AS from_city, b.city AS to_city,
111.111 *
DEGREES(ACOS(LEAST(1.0, COS(RADIANS(a.Latitude))
* COS(RADIANS(b.Latitude))
* COS(RADIANS(a.Longitude - b.Longitude))
+ SIN(RADIANS(a.Latitude))
* SIN(RADIANS(b.Latitude))))) AS distance_in_km
FROM city AS a
JOIN city AS b ON a.id <> b.id
WHERE a.city = 3 AND b.city = 7;
ログイン後にコピー

このクエリは、2 つの都市 (3 と 7) の座標ペアを取得し、式を適用して距離をキロメートル単位で求めます。

近くのポイントの場合は、速度が遅くなる可能性があるため、距離ベースのフィルターの使用を避けてください。代わりに、ここで説明されているバウンディング ボックス計算手法を使用します: http://www.plumislandmedia.net/mysql/haversine-mysql-nearest-loc/.

Modern Solution (2022)

最新のテクノロジーに対応するには、次の短縮形の使用を検討してください。コード:

SELECT ST_Distance_Sphere(
point(-87.6770458, 41.9631174),
point(-73.9898293, 40.7628267))
ログイン後にコピー

このクエリは ST_Distance_Sphere() 関数を使用して 2 点間の距離を計算します。

以上がMySQL で 2 つの地理座標間の距離を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート