数据库
首页 > 数据库> > php – 使用MySQL空间数据在Google地图上获取最近的位置

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