簡體   English   中英

在給定經度和緯度的情況下,如何從數據庫獲取到地點的距離

[英]How to get distance to places from DB given longitude and latitude

我想從數據庫中選擇我周圍的10公里范圍內的地方。 例如,當在示例數據庫中選擇Location_1時,我想從數據庫中獲取類似於上述條件的Locations。 我現在使用Yii2。

這是我的數據庫表示例,名為“ places”

ID          Location        Longitude   Latitude
----------- ---------- ---------- -----------
1           Location_1      30.8505081  14.2575487
2           Location_2      30.828072   14.1554811
3           Location_3      30.850763   14.250705
4           Location_4      30.8484719  14.252653

現在,我不知道如何從經度和緯度到當前位置的距離。

嘗試這個。 該位置的緯度為14.2575487,經度為30.8505081,可從該位置在10 Kms以內的表中找到結果。

SELECT *,ROUND(  1.609 * 3956 * 2  * ASIN(SQRT(POWER(SIN((14.2575487 - ABS(Latitude)) * PI()/180 / 2),2) + COS(14.2575487 * PI()/180 ) * COS(ABS(Latitude) * PI()/180) * POWER(SIN((30.8505081 - Longitude ) * PI()/180 / 2), 2) )),0) AS distance FROM places WHERE 1=1  HAVING distance<= 10 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM