我正在使用谷歌地图v3捕获MS SQL数据库表中名为Locations的所有地址,这些地址将包含LocationName,LocationAddress,LocationZip,LocationState,LocationCity,LocLatitude,LocLongitude和LocationType(如医院,医生办公室或紧急情况)中心等)..
我有一个输入框,用户可以通过关键字和半径5,10,20和50英里的下拉选项进行搜索。我已经能够使用输入框并将键入的关键字作为查询字符串传递,以搜索所有匹配的位置,并在google map api 3中为它们绘制标记。我也喜欢在匹配的结果上进行邻近搜索,例如5英里的说洛杉矶..
可以使用本网站使用的方法吗? http://maps.huge.info/dragcircle2.htm
它绘制了一个5英里的半径,我需要几乎捕获该半径内的所有标记?请一些天才谷歌地图的男生/女生给我一些指导..
答案 0 :(得分:3)
Google提供了有关创建商店定位器的完整教程。您缺少的重要信息是如何查询数据库以撤回半径内的位置。
http://code.google.com/apis/maps/articles/phpsqlsearch.html
查看上面的链接了解详细信息,但查询看起来像这样(mySQL):
SELECT
address,
name,
lat,
lng,
(
3959 * acos(
cos( radians('%s') ) * cos( radians( lat ) )
*
cos( radians( lng ) - radians('%s') )
+
sin( radians('%s') )
*
sin( radians( lat ) )
)
) AS distance
FROM markers
HAVING distance < '%s'
ORDER BY distance
LIMIT 0 , 20
它使用三角法!