【问题标题】:ZIP / Postal Code + Country to Geo Coordinates邮政编码 + 国家/地区到地理坐标
【发布时间】:2011-01-05 20:29:02
【问题描述】:

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

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

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


I was reading a Meta question时,我看到了这个链接:

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,但我不知道我可以将它用于地理编码地址,所以我搜索了一下并I found this very interesting piece of information

使用限制

每个应用程序限制(由 您的访问密钥):每 100,000 次调用 天

每个 IP 限制:/v1/public/:1,000 每小时通话; /v1/yql/: 10,000 每小时通话次数

有谁知道我在哪里可以获得更多关于使用 YQL 到地理编码地址的具体信息?

【问题讨论】:

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

标签: web-services geolocation geocoding zipcode postal-code


【解决方案1】:

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

他们还允许您在知识共享许可下download a substantial portion of their data,但不幸的是,这似乎仅限于 WOEID 关系和国家/地区名称。

【讨论】:

  • 谢谢,但每天 5 万个请求对我来说仍然不够(仅我的小国家就有将近 30 万个邮政编码)。另外我发现雅虎在邮政编码中的坐标不是很精确,对于几个不同的邮政编码返回相同的坐标。不过,很高兴知道 WOEID 转储。 =)
  • 很高兴了解您对其不精确的体验。我同意上面的Pekka;这可能会花费一些钱,但请尝试询问 Yahoo!也许只需支付一小笔费用,您就可以让他们解除每日限制,或者找出可以缓存结果的地方。
【解决方案2】:

我认为您的选择可能取决于您打算每天进行多少 API 调用。免费 Google Maps API 的每日限制为每个 IP 地址 15,000 个请求。 (来源:Google Maps API FAQ。)

您可以使用以下 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 条款和条件。您可能需要查看有关这些限制的更多信息。

【讨论】:

  • 15,000 一天,这对于我想要的东西来说有点低......顺便说一句,sensor=false 是做什么的?
  • Google 每年可以将您的地理编码限制提高约 1 万美元:groups.google.com/group/Google-Maps-API/browse_thread/thread/…。你没有说它必须是免费的:)
  • 高 API 率 = 一天内对一个国家/地区的所有邮政编码进行地理编码
  • 这将排除谷歌地图,可能还有其他任何网络服务。此外,我认为永久存储地理编码结果是违反谷歌地图条款的。
  • 但是你可以使用 memcached 来避免浪费 api 调用;-D
【解决方案3】:

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

如果这不是一个选项,您当然可以获取单独的数据文件,而且在许多国家/地区的票价都比 33 grand 便宜。我很确定德国和奥地利以 3 位数的价格出售数据文件,而对于英国来说,Postcode Address File (PAF) 是来自皇家邮政的数据,我认为质量不会比这更好。 当然,除了成本和麻烦之外,还有很多转换工作要处理来自不同邮局的 26 个单独文件等等——我不会羡慕任何人的工作:)如果你有预算,可能与 Google 或 Yahoo 交谈最便宜。

【讨论】:

  • 英国:他们几乎每周都会更新他们的邮政编码!我找到了一个相对便宜的数据提供商 (geopostcodes.com/buy_eu_zip_codes),但我不太确定他们的数据质量。
  • 很有趣,我不知道,但他们几乎到了英国的一所房子,所以很明显他们波动很大......嗯,这就解释了为什么每年订阅皇家邮政花费£1700 :)
  • 我仍然认为这是一种滥用,这里我们有街道级别的精确度,他们一年只更改一次或两次邮政编码。
  • 是的,我在家里对 Google 的数据也有同样的体验,我所在地区的很大一部分没有经过地理编码到街道级别(而且在大城市!)
  • 是的,1700 英镑/年是骗人的,毫无疑问。就像 33k 或任何费用一样 - 毕竟,这是在大多数(如果不是全部)欧洲国家/地区通过税收支付的公共数据。
【解决方案4】:

这实际上是一个非常棘手的问题,因为邮政编码实际上不是一个多边形区域,而是一组聚合在一起的线(请参阅How to get the bounding coordinates for a US postal(zip) code? 的最佳答案以获得对此的非常详细的解释。)

在美国,人口普查局维护着一个大致的邮政编码边界列表,称为“五位邮政编码制表区”(ZCTA5)。您可以直接下载这些并根据需要进行处理。有几种地理编码工具可以帮助您开始使用;我使用 PostGIS (http://postgis.net/),但还有其他的,最重要的是覆盖全球的 Open Street Maps 数据 (http://www.openstreetmap.org)。

【讨论】:

  • 非常简单的美国边界 API。 www.boundares-io.com ,它确实要花钱(访问 API 每月 25 美元)免责声明我为他们工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多