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

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

Linda Hamilton
Linda Hamilton原創
2024-12-27 09:27:17309瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn