如何使用MySQL高效率檢索指定範圍內的位址?

Susan Sarandon
發布: 2024-11-03 15:13:03
原創
232 人瀏覽過

How to Efficiently Retrieve Addresses within a Specified Range using MySQL?

使用MySQL高效檢索指定範圍內的位址

要有效檢索給定位置5英里半徑內的位址,在Java 中檢索所有100,000 個位址併計算距離的效率很低。相反,MySQL 透過半正弦公式提供了合適的解決方案。

半正弦公式計算球體上兩點之間的大圓距離,在本例中為使用者的位置和每個位址。使用此公式,您可以建構如下 MySQL 查詢:

<code class="sql">SELECT *, ( 3959 * acos( cos( radians($lat) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians($lng) ) + sin( radians($lat) ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5;</code>
登入後複製

在上面的查詢中,$lat 和 $lng 代表使用者的座標,而 lat 和 lng 代表位址座標。透過應用半正弦公式,查詢計算每個位址與使用者位置之間的距離,並僅選擇 5 英里範圍內的位址。

透過利用此方法,您可以有效率地檢索需要查詢的位址。顯示在地圖上,同時避免計算所有 100,000 個位址的距離的昂貴計算任務。

以上是如何使用MySQL高效率檢索指定範圍內的位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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