Google Maps API是否有办法,我可以在特定邮政编码的给定半径(英里)内找到所有红色气球点(固定在我的谷歌地图上的地址)?
例如......
第一个输入框询问您的邮政编码。输入。
第二个输入框(带有< options>的节框)要求您输入 半径以英里为单位,10英里,20英里,30英里......等等
然后点击提交
然后谷歌地图显示所有地址(存储自 json文件),在红色气球的谷歌地图上。
网上是否有免费的学习材料可以帮我构建这样的东西?
我整个上午都在阅读谷歌地图api的东西,并没有找到任何可以提供此功能的例子。
谢谢!
答案 0 :(得分:2)
当您只想要近似和快速结果时,您还可以尝试空间填充曲线,即空间索引。查看xkcd漫画中的互联网地图。它使用希尔伯特曲线从互联网上打印地图。然后,您可以使用曲线转换地理位置并放宽最近邻搜索。在具有点数据类型和空间索引的许多数据库引擎中使用相同的曲线。
这里有一个javascript hilbert曲线:https://github.com/chrisdew/jshilbert。 这是一篇关于空间索引的博客:http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves。我写了一个php类hilbert-curve @ phpclasses.org。它还使用墨卡托投影。
答案 1 :(得分:2)
以下是您需要遵循的两个高级步骤:
1)您希望使用Google Geocoder API将该邮政编码(或许多不同形式的地址!)转换为纬度和经度坐标。
2)动态创建对脚本的GET请求,该脚本根据用户输入的距离(5英里,10英里等)查询数据库,如下所示:
var searchUrl = 'phpsqlajax_search.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
查看我对此相关问题的回答,以便您可以获取用户输入并对地址进行地理编码:Store locatore, how to use/input my postion?
Google Maps API提供了大量文档,可帮助您查找数据库中距离某个纬度和经度坐标最近的项目。可在此处找到:https://developers.google.com/maps/articles/phpsqlsearch_v3
注意:文档使用PHP,Javascript和MySQL。