[英]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.