我应该使用 Google Maps API/Geocoding 为商店查找器提供动力吗

Posted

技术标签:

【中文标题】我应该使用 Google Maps API/Geocoding 为商店查找器提供动力吗【英文标题】:Should I use Google Maps API/Geocoding to power a store finder 【发布时间】:2014-04-23 16:37:23 【问题描述】:

我是地理编码的新手,所以我不确定这是否是我应该问的问题,但我在这个主题(这里和 Google API 论坛上)看到的所有其他讨论都非常适用具体来说,我觉得我可能错过了一个非常基本的步骤 - 我不需要知道如何来实现商店查找器 - 我需要知道我是否应该应该

这是我的具体情况 - 我已签约设计一个应用程序,我们将在其中建立商店数据库(例如,独立拥有的酒吧和酒馆)。随着商店关门和新店开张,这份名单将不断增长和变化。用户可以输入他/她的原点(邮政编码或地址),然后显示一个列表或地图,其中包含按接近顺序排列的给定半径内的所有各种商店。

我知道如何从静态数据库提供这些结果: 可以将经度和纬度存储为每一行的列,然后仅使用该信息来检查距离。

但是我继承了一个(已经相当大的)商店数据库,其中有地址但没有坐标 - 所以我不确定获取这些地址的最佳方法是什么。我可以编写一个脚本来针对谷歌地理编码一次查询一个,我可以让数据输入人员手动查找每个坐标并以这种方式填充数据,或者可能还有第三种我不知道的选项的。

这是问这个问题的正确地方吗? Google Maps Geocoding 没有自己的论坛,而是将人们推荐给 Stack Overflow。网络上处理此主题的其他论坛都与特定技术问题有关,但似乎没有人从自上而下的角度(即大局)谈论它。

Google 对免费用户每天限制 2,500 次查询,对付费用户每天限制 100,000 次查询 - 如果每次用户进行请求时,整个数据库(可能是数千家商店)都在对照 Google 的数据进行检查。似乎可以肯定我们必须将坐标存储在本地,但即使将它们存储在本地,也必须对 Google 进行检查才能将它们绘制在地图上。如果我有有限数量的位置(例如,如果我有六家五金店)并且我想制作一个商店定位器,那么会有大量的讨论、教程和堆栈溢出问题为我指明方向,但我正在处理大量的记录,不知道如何继续或从哪里开始。

欢迎提供任何建议 - 此外,如果这不是提出此问题的最佳地点,那么一个有用的回复将是指出一个更好的发布地点。我已经搜索了 3 天,但还没有找到适合提出此类主观问题的好资源。

【问题讨论】:

【参考方案1】:

最好的方法当然是使用地理编码服务获取坐标并将坐标存储在数据库中。但是谷歌的地理编码服务是不可能的,因为它不允许永久存储地理编码的数据。

有没有这个限制的免费服务,一些关键字要搜索:mapquest、nominatim、geonames(但这些服务不如google准确)

另一种选择是使用 FusionTable。地理编码将自动运行(但每日限制与地理编码服务相同)。好处:地理编码是永久性的(您不能通过例如下载 DB-dump 直接访问位置),但您可以使用坐标来绘制标记(通过 FusionTablesLayer)或过滤(例如通过距离)

条目数不成问题,100k 对数据库来说没问题

【讨论】:

非常感谢您的意见。研究您提到的替代服务 - geocoder.us 看起来很有希望:)

以上是关于我应该使用 Google Maps API/Geocoding 为商店查找器提供动力吗的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps (Reverse) Geocoding API 应该只显示 Cityname

使用 Google Maps API 获取地点总数

使用航点启动 google maps android 应用程序

Google Maps API OVER QUERY LIMIT 每秒限制

使用 jquery 调整 Google Maps api v3 DIV 的大小 - 磁贴未正确刷新

我应该在 Google 地图 URL 中使用哪些参数才能转到经纬度?