繁体   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