问题 邮政编码+国家到地理坐标


获取给定国家/地区的给定邮政编码的坐标(纬度/经度)的最完整,最精确和最可靠的方法是什么?我需要提出很多请求,因此API限制率很高(甚至可能不存在)会很有用。

GeoNames的 转储会很酷,但似乎有太多重复的坐标()并且它们的数据库似乎也缺少特定国家/地区的一些邮政编码。

还有其他(可靠的)替代品吗?


我正在阅读一个Meta问题,我发现了这个链接:

http://query.yahooapis.com/v1/public/yql?q=select%20%2A%20from%20geo.places%20where%20text%3D%22Jyv%C3%A4skyl%C3%A4%22&format=xml

我之前听说过YQL,但我不知道我可以将它用于GeoCode地址,所以我搜索了一下 我发现这个非常有趣的信息

使用限制

每个申请限额(由   您的访问密钥):每次100,000个电话   天

每IP限制:/ v1 / public /:1,000   每小时通话; / v1 / yql /:10,000   每小时来电

有谁知道在使用YQL到GeoCode地址时我可以获得更具体的信息?


10412
2018-01-16 13:23


起源

许多欺骗包括 stackoverflow.com/questions/1320262/...
@Neil:不完全是,该问题中的所有答案都使用GYM / GYB API并且具有较低的速率限制。 - Alix Axel
您是否愿意更仔细地解释您需要的数据?例如,在德国,单个邮政编码适用于由区或县边界定义的非常大的区域。具有相同5位邮政编码的两个地址可以相距10-20公里。在我的家乡芬兰也是如此(距离更远)。邮政编码上的地理编码只能是一个虚构的中心点。您似乎非常关注数据的质量 - 这对您有何影响?此外,操作真的需要在一天内进行吗?为什么不在几周内分发查询? - Pekka 웃
@Pekka:是的,在我的国家(葡萄牙),我们有7位数的邮政编码,每个邮政编码距离下一个邮政编码不到1公里。我知道并非所有国家都有相同的精确度(不幸的是),但我必须与之保持一致。葡萄牙邮政局希望将近33,000欧元用于该国80%的邮政编码覆盖(他们甚至不使用WGS84标准)。我不能分享项目的具体细节,但我需要在相当短的时间内(2到3周)对欧洲的每个邮政编码进行地理编码,我让葡萄牙差不多完成了,但仍有26个国家要去...... - Alix Axel
我会把它写进一个答案,见下文。 - Pekka 웃


答案:


雅虎GeoPlanet 将为您提供邮政编码的质心纬度/长点。根据我的经验,他们一直很可靠。 API限制是每天50,000个请求。我不确定他们对缓存结果的政策是什么。我得到的印象是,如果您联系Yahoo!,您可以设置一个具有更高请求限制的安排,但可能需要花费一些钱。

他们也让你 下载他们的大部分数据 根据知识共享许可,但不幸的是,这似乎仅限于WOEID关系和国家/地区名称。


6
2018-01-16 21:11



谢谢,但仍然每天50k的请求对我来说仍然不够(我的小国仅有近300k的邮政编码)。另外我发现雅虎在邮政编码中的坐标不是很精确,几个不同的邮政编码会返回相同的坐标。很高兴知道WOEID转储。 =) - Alix Axel
很高兴知道你的不精确经验。我同意上面的Pekka;它可能需要一些钱,但试着问雅虎!也许只需支付少量费用,您就可以提高他们的每日限额,或者在可以缓存结果的地方工作。 - npdoty


我认为您的选择可能取决于您每天打算进行多少API调用。免费Google Maps API的每日限额为每个IP地址15,000个请求。 (资源: Google Maps API常见问题解答。)

您可以使用以下HTTP请求使用Google Maps API进行地理编码:

简单的CSV:

http://maps.google.com/maps/geo?q=W1A+1AA,+London&output=csv&sensor=false

更复杂的XML:

http://maps.google.com/maps/geo?q=W1A+1AA,+London&output=xml&sensor=false

只需将邮政编码和国家/地区的“q”参数更改为地理编码即可。

但是,我认为将地理编码结果永久存储在您的数据库中可能违反了Google Maps API条款和条件。您可能想要检查有关这些限制的更多信息。


6
2018-01-16 13:31



每天15,000对我想要的东西来说有点低...... BTW是什么 sensor=false 做? - Alix Axel
回覆: sensor=false: stackoverflow.com/questions/1993978 - Daniel Vassallo
+1,谢谢Daniel。 =) - Alix Axel
Google可以每年增加约1万美元的地理编码限制: groups.google.com/group/Google-Maps-API/browse_thread/thread/...。你没有说它必须是免费的:) - Daniel Vassallo
这将排除Google地图,可能还有其他任何网络服务。此外,我认为永久存储地理编码结果违反了Google地图条款。 - Daniel Vassallo


最简单的方法当然是找到一个没有请求限制的高质量服务提供商。为什么不向Google提出要约?据我所知,他们对商业客户非常灵活。

如果这不是一个选项,你肯定能够获得个人数据文件,并且在许多国家的票价比33美元便宜。我非常确定德国和奥地利以3位数的价格销售数据文件,对于英国而言,则有 邮政编码地址文件(PAF) 这是来自皇家邮政的数据,我认为质量不会比这更好。 当然,除了成本和麻烦之外,还有很多转换工作要处理来自不同邮局的26个单独的文件以及诸如此类 - 工作我不会羡慕任何人:)如果你有预算,它可能是最便宜与谷歌或雅虎交谈。


2
2018-01-16 22:05



英国:他们几乎每周都会更新邮政编码!我发现了一个相对便宜的数据提供者geopostcodes.com/buy_eu_zip_codes)但我不太确定他们的数据质量。 - Alix Axel
有趣的是,我不知道,但他们几乎到了英国的一所房子,所以很明显他们波动了很多......这就解释了为什么皇家邮政的年度订阅费用为1700英镑:) - Pekka 웃
我仍然认为这是一种滥用,这里我们有街道级精度,他们只在一年内对邮政编码进行一次或两次更改。 - Alix Axel
是的,我在家里就谷歌的数据做了相同的经验,我所在地区的很大一部分都没有地理编码到街道(以及在一个主要城市!) - Pekka 웃
是的,1700英镑/年是一个骗局,毫无疑问。至于33k,或任何费用 - 毕竟,这是大多数(如果不是全部)欧洲国家的税收公共数据。 - Pekka 웃


这实际上是一个非常棘手的问题,因为邮政编码实际上并不是一个多边形区域,而是一组聚集在一起的线条(参见最佳的 如何获取美国邮政(zip)代码的边界坐标? 对此有一个非常详细的解释。)

在美国,人口普查局维护一个大致的邮政编码边界清单,称为“五位邮政编码列表区”(ZCTA5)。您可以直接下载这些并随意处理它们。有几种地理编码工具可以帮助您入门;我使用PostGIS(http://postgis.net/)但还有其他,最重要的是开放街道地图数据(http://www.openstreetmap.org),它涵盖了世界。


1
2018-05-25 16:00



非常简单的美国边界API。 www.boundares-io.com,它确实需要花钱(每月25美元才能获得API) 免责声明我为他们工作 - Jeryl Cook