首頁 > 後端開發 > php教程 > 如何在 MySQL 中使用半正矢公式計算大圓距離?

如何在 MySQL 中使用半正矢公式計算大圓距離?

Linda Hamilton
發布: 2024-12-27 09:27:17
原創
290 人瀏覽過

How Can I Calculate Great Circle Distance in MySQL Using the Haversine Formula?

MySQL:使用半正弦公式計算大圓距離

簡介

計算之間的距離球體上的兩個地理座標是地理空間應用的常見任務。一種廣泛使用的方法是半正矢公式,它可以為兩點之間的大圓距離提供準確的結果。

在MySQL 中使用半正矢公式

到在MySQL中實現半正矢公式,我們可以利用以下步驟:

  1. 轉換座標值(緯度)使用RADIANS() 函數將座標值和經度)轉換為弧度。
  2. 使用 SUBTRACT() 或 ABS() 函數計算座標之間的差值。
  3. 將步驟 2 中獲得的差異平方並然後將它們相加。
  4. 將步驟 3 的總和乘以地球半徑(6371 公里或3959 英里)。
  5. 最後,使用 SQRT() 函數計算步驟 4 結果的平方根。

範例SQL 查詢

這是一個範例SQL 查詢,它實作了半正矢公式來計算兩個之間的大圓距離座標:

SELECT (
    6371 * ACOS(
        COS(RADIANS(37)) * COS(RADIANS(lat)) * 
        COS(RADIANS(lng) - RADIANS(-122)) + 
        SIN(RADIANS(37)) * SIN(RADIANS(lat))
    )
) AS distance 
FROM markers 
WHERE distance < 25
ORDER BY distance
LIMIT 0, 20;
登入後複製

此查詢將傳回25 公里半徑內距離座標(37, -122) 最近的20個位置的 id 和計算的距離。

結論

透過MySQL中的Haversine公式,我們可以精確地確定兩個地理區域之間的大圓距離座標。該技術對於需要精確距離計算的基於位置的應用程式特別有用。

以上是如何在 MySQL 中使用半正矢公式計算大圓距離?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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