通过谷歌地图获取当前位置10公里范围内所有位置的纬度和经度(使用PHP)

Ahs*_*lam 7 php google-maps google-maps-api-3

我是Google地图新手.我有一张桌子,其中列出了纬度和经度的所有位置(超级商店的位置).

现在我想知道这些超级商店在我当前位置10公里半径范围内的所有可能位置(可能是纬度和经度).

我不知道如何使用谷歌地图(在PHP代码中)这样做.我应该使用哪种Google地图API?任何建议,项目代码,信息都将对我有所帮助

提前致谢

San*_*dav 10

您可以使用以下查询Mysql来获取指定里程内的所有商店

select * from stores where lat!='' and lng!='' and ( 3959 * acos( cos( radians(" . $centerpoints['lat'] . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $centerpoints['lng'] . ") ) + sin( radians(" . $centerpoints['lat'] . ") ) * sin( radians( lat ) ) ) ) < " . $distanceInMile
Run Code Online (Sandbox Code Playgroud)


xel*_*ber 7

https://developers.google.com/maps/articles/phpsqlsearch_v3 看看上面的内容.应该给你一个好主意.

要在标记表中查找位于给定纬度/经度的特定半径范围内的位置,可以使用基于Haversine公式的SELECT语句.Haversine公式通常用于计算球体上两对坐标之间的大圆距离.维基百科给出了一个深入的数学解释,并且关于编程的一个很好的讨论是在Movable Type的网站上进行的.

这是SQL语句,它将找到距离37,-122坐标25英里半径范围内最近的20个位置.它根据该行的纬度/经度和目标纬度/经度计算距离,然后仅询问距离值小于25的行,按距离对整个查询进行排序,并将其限制为20个结果.要以公里而不是里程搜索,请将3959替换为6371.