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