我想从数据库中选择我所在位置周围10公里范围内的位置。例如,当Location_1
在示例数据库中进行选择时,我想从数据库中获取类似于上述条件的位置。我现在使用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句