我是Google地图新手。我有一张桌子,其中列出了纬度和经度的所有位置(超级商店的位置)。
现在我想知道这些超级商店在我当前位置10公里范围内的所有可能位置(可能是纬度和经度)。
我不知道如何使用谷歌地图(在PHP代码中)这样做。 我应该使用哪种Google地图API? 任何建议,项目代码,信息对我都有帮助
先谢谢
答案 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。