首頁 > 資料庫 > mysql教程 > ## 如何提高 MySQL 中基於半徑的位置搜尋的準確性?

## 如何提高 MySQL 中基於半徑的位置搜尋的準確性?

Barbara Streisand
發布: 2024-10-28 04:58:01
原創
642 人瀏覽過

## How to Improve the Accuracy of Radius-Based Location Searches in MySQL?

提高基於半徑搜尋的MySQL 經度和緯度查詢的準確性

在mySQL 中執行基於半徑的位置搜尋時,一個常見問題正在獲得明顯偏離指定半徑的結果。這種差異通常是由距離計算公式中的錯誤引起的,從而導致距離測量不準確。

要解決此問題,請考慮使用稍微不同的距離計算方法的細化查詢:

SELECT
    `id`,
    (
        6371 *
        acos(
            cos( radians( :lat ) ) *
            cos( radians( `lat` ) ) *
            cos(
                radians( `long` ) - radians( :long )
            ) +
            sin(radians(:lat)) *
            sin(radians(`lat`))
        )
    ) `distance`
FROM
    `location`
HAVING
    `distance` < :distance
ORDER BY
    `distance`
LIMIT
    25
登入後複製

在此查詢中:

  • :lat和:long 表示使用者定義的座標。
  • lat 和 long 表示儲存在資料庫中的座標。
  • :距離對應於指定的半徑,以英里為單位(如果將 3959 替換為 6371,則為公里)。

此公式基於半正弦公式計算距離,該公式提供比使用的公式更準確的結果在你原來的查詢中。透過合併此修訂後的公式,您可以最佳化半徑搜尋功能,確保傳回的結果符合指定的半徑範圍。

以上是## 如何提高 MySQL 中基於半徑的位置搜尋的準確性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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