php – 使用MySQL空间数据在Google地图上获取最近的位置
作者:互联网
我有一个数据库,其中包含每个纬度和经度的商店列表.所以基于我输入的当前(lat,lng)位置,我想得到一些半径范围内的项目列表,如1 km,5 km等?
算法应该是什么?我需要算法本身的PHP代码.
解决方法:
您只需要使用以下查询.
例如,您输入纬度和经度37和-122度.并且您希望从当前给定的纬度和经度搜索25英里范围内的用户.
SELECT item1, item2,
( 3959 * acos( cos( radians(37) )
* cos( radians( lat ) )
* cos( radians( lng )
- radians(-122) )
+ sin( radians(37) )
* sin( radians( lat ) )
)
) AS distance
FROM geocodeTable
HAVING distance < 25
ORDER BY distance LIMIT 0 , 20;
如果您想要以kms为单位的搜索距离,则在上述查询中将3959替换为6371.
你也可以这样做:
>选择所有纬度和经度
>然后计算每条记录的距离.
>上述过程可以通过多次重定向完成.
要优化查询,可以使用存储过程.
而this也可以帮到你.
标签:php,google-maps,geocoding,geo 来源: https://codeday.me/bug/20190918/1810631.html