利用SQL查詢定位最近的經緯度
從資料庫檢索資料時,通常需要尋找與給定點最接近的經緯度記錄。這在尋找附近的企業、景點或其他興趣點等場景中特別有用。
查詢重點
要執行此任務,需要一個SQL查詢,該查詢可以根據經緯度計算兩點之間的距離。這涉及使用考慮地球曲率的Haversine公式。此外,還需要指定檢索記錄的最大允許距離。
SQL查詢結構
以下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 < [max_distance] ORDER BY distance;</code>
[startlat]
和 [startlng]
代表起點的經緯度。 [max_distance]
指定應擷取記錄的最大距離。 說明:
此查詢使用Haversine公式計算每筆記錄的經緯度與給定起點之間的距離。 “distance”欄位儲存結果距離。然後選擇距離小於指定最大距離的記錄,並依其與起點的距離排序。
透過使用此查詢,可以有效地找到與給定點最近的經緯度記錄,並考慮距離限制。
以上是如何使用 SQL 在資料庫中尋找最近的緯度和經度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!