首頁 > 資料庫 > mysql教程 > 如何使用 SQL 找出給定距離內最近的緯度和經度?

如何使用 SQL 找出給定距離內最近的緯度和經度?

Patricia Arquette
發布: 2025-01-18 16:17:08
原創
432 人瀏覽過

How to Find the Nearest Latitude and Longitude within a Given Distance Using SQL?

使用SQL找出最近經緯度的查詢

本文將探討如何利用SQL從資料庫中擷取到給定參考座標一定範圍內的最近經緯度。

問題描述:

您已知經緯度值,希望提取資料庫中與該經緯度最匹配的記錄。但存在距離閾值:如果計算出的距離超過此閾值,則不應檢索任何資料。

表格結構:

列名 数据类型
id 整数
纬度 十进制
经度 十进制
地名 字符串
城市 字符串
国家 字符串
字符串
邮编 整数
海拔 整数

查詢語句:

為了完成此任務,我們使用下列SQL查詢:

<code class="language-sql">SELECT 纬度, 经度, SQRT(
    POW(69.1 * (纬度 - [startlat]), 2) +
    POW(69.1 * ([startlng] - 经度) * COS(纬度 / 57.3), 2)) AS distance
FROM 表名称 HAVING distance < 25
ORDER BY distance ASC;</code>
登入後複製
  • [startlat]: 距離測量的起始緯度。
  • [startlng]: 距離測量的起始經度。
  • 25: 最大允許距離閾值(以公里為單位)。

說明:

此查詢使用大圓距離公式計算參考座標([startlat], [startlng])與表中每個記錄之間的距離。如果計算出的距離小於指定的閾值(在此範例中為25公里),則該記錄將包含在結果中。查詢也會根據距離按升序對結果進行排序,確保首先傳回最接近的記錄。

以上是如何使用 SQL 找出給定距離內最近的緯度和經度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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