首頁 > 資料庫 > mysql教程 > 如何使用緯度和經度來找出指定半徑內最近的地理記錄?

如何使用緯度和經度來找出指定半徑內最近的地理記錄?

Susan Sarandon
發布: 2025-01-18 16:07:13
原創
965 人瀏覽過

How to Find the Nearest Geographic Record Within a Specified Radius Using Latitude and Longitude?

經緯度資料庫中確定距離

給定經緯度座標,任務是從資料庫中檢索具有最近匹配經緯度的記錄,同時確保距離保持在指定的閾值內。如果距離超過指定的限制,則不應傳回任何記錄。

提供的表格結構包括經度、緯度和其他位置相關資訊的欄位。為此,我們使用以下SQL查詢:

<code class="language-sql">SELECT latitude, longitude, SQRT(
    POW(69.1 * (latitude - [startlat]), 2) +
    POW(69.1 * ([startlng] - longitude) * COS(latitude / 57.3), 2)) AS distance
FROM TableName HAVING distance < [radius]</code>
登入後複製

此查詢中,[startlat][startlng] 表示測量距離的起始座標。距離計算使用 Haversine 公式進行,該公式準確地確定球體(在本例中為地球)上兩點之間的距離。 POW() 函數對起始座標和目標座標之間的差異進行平方,COS() 函數考慮了地球的曲率。最終結果是以英里為單位的距離。

透過包含具有條件「distance

以上是如何使用緯度和經度來找出指定半徑內最近的地理記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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