有没有办法在Google maps api v3中按半径搜索半径?

时间:2014-11-17 08:15:58

标签: search google-maps-api-3 kml

所以我的目标是将半径保存在数据库中。我不确定我是否需要使用kml。然后我希望网站用户能够按地点搜索并为搜索提供半径。当然应该显示相应的数据库条目。这意味着搜索将是一个半径的地方,它也必须搜索已保存半径的数据库。这可能吗?如何最好地保存区域?我如何使用Google maps api执行这样的搜索?非常感谢提前。

1 个答案:

答案 0 :(得分:1)

Google Maps API v3本身不提供此类功能,但它确实为提供基于半径的搜索的API提供了包装,如

现在,由于您已经计划将数据保存到数据库,因此您不需要依赖Google Maps API嵌入式功能。您可以自己查询数据库,稍后以标记的形式处理结果,例如

任何启用地理位置的数据库都允许您搜索半径,指定中心,半径以及可选的按距离排序。如果你想搜索距离{lng:30,lat:70} 1000米范围内的所有记录,iIn MongoDB就像是

db.Yourpoints.find({
  "location":{
    $near:{
      "type": "Point",
      "coordinates": [
         -70,
         30
      ] 
    },
   $maxDistance: 1000 
  }
});

而在PostgreSQL(使用Postgis)中它会像

SELECT *
FROM Yourpoints
WHERE ST_Distance_Sphere(the_geom, ST_MakePoint(-70,30)) <= 1000

编辑哦,我不明白为什么要在数据库中保存半径。你的意思是,保存预定义的查询?坚持结果集?