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

时间:2012-10-18 07:37:08

标签: php google-maps google-maps-api-3

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

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

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

先谢谢

3 个答案:

答案 0 :(得分:16)

答案 1 :(得分: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

答案 2 :(得分:7)

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

  

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

     

这是SQL语句,它将找到最接近的20个位置   距离37,-122坐标的半径为25英里。它   根据该行的纬度/经度计算距离   和目标纬度/经度,然后只询问行在哪里   距离值小于25,按顺序排序整个查询   距离,并将其限制为20个结果。以千米为单位进行搜索   里程数,用6371代替3959。