首頁 > 資料庫 > mysql教程 > 如何在MySQL中計算兩個地理座標之間的距離?

如何在MySQL中計算兩個地理座標之間的距離?

Susan Sarandon
發布: 2024-12-15 16:45:18
原創
223 人瀏覽過

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

使用緯度和經度確定MySQL 中地理座標之間的距離

您的查詢利用球面餘弦定律公式來計算一點之間的距離和所有其他人。若要找出兩個特定點之間的距離,請依下列方式修改查詢:

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;
登入後複製

此查詢擷取兩個城市(3 和7)的座標對並套用公式,產生以公里為單位的距離。

對於附近的點,請避免使用基於距離的過濾器,因為它們可能很慢。相反,採用邊界框計算技術,如下所述:http://www.plumislandmedia.net/mysql/haversine-mysql-nearest-loc/.

現代解決方案(2022)

為了跟上最新技術,請考慮使用以下縮寫程式碼:

SELECT ST_Distance_Sphere(
point(-87.6770458, 41.9631174),
point(-73.9898293, 40.7628267))
登入後複製

此查詢使用 ST_Distance_Sphere() 函數來計算兩點之間的距離。

以上是如何在MySQL中計算兩個地理座標之間的距離?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板