經緯度資料庫中確定距離
給定經緯度座標,任務是從資料庫中檢索具有最近匹配經緯度的記錄,同時確保距離保持在指定的閾值內。如果距離超過指定的限制,則不應傳回任何記錄。
提供的表格結構包括經度、緯度和其他位置相關資訊的欄位。為此,我們使用以下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中文網其他相關文章!