邻近搜索谷歌地图

时间:2012-02-28 17:17:14

标签: javascript google-maps overlay

我正在使用谷歌地图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英里的半径,我需要几乎捕获该半径内的所有标记?请一些天才谷歌地图的男生/女生给我一些指导..

1 个答案:

答案 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

它使用三角法!