【问题标题】:iOS: ReverseGeocoding Using CLGeocoder Vs. Google Geocoder APIiOS:使用 CLGeocoder 的反向地理编码与。谷歌地理编码器 API
【发布时间】:2012-08-30 08:03:02
【问题描述】:

我正在构建一个 iOS 应用程序,它在其中一个功能中实现了反向地理编码,以便通过用户在地图上的手势点击获取街道地址。

使用 CLGeocoder 的反向地理编码功能运行应用程序时,我只能获取城市和国家/地区的详细信息。在某些情况下,在主要道路上,我能够获得主要道路名称。

我认为这个限制来自 Google Maps api。

但是当我测试这个示例时,(http://gmaps-samples.googlecode.com/svn/trunk/geocoder/reverse.html) 我能够获得更准确和详细的信息,例如街道号码和名称和邮政编码。

这是 CLGeocoder 的限制吗?如果是这样,我如何在我的应用上实现 Google Maps api?

【问题讨论】:

  • 我发现了一个用于谷歌地理编码器 API 的 SVGeocoder Wrapper。我现在正在测试它,它确实带来了很多详细的结果。
  • 我尝试使用 SVGeocoder,但它在 10 次尝试中 7 次都找不到位置,在剩下的 3 次中,它会返回正确的位置,你有没有遇到过这种情况。如果是,解决方案是什么?发生的事情是,SVGeocoder 返回 (0,0) 作为 (lat,long) 对,因此它使我的下一步出错,因为我正在使用这些值。

标签: iphone ios google-maps google-maps-api-3 clgeocoder


【解决方案1】:

据我了解,CLGeocoder 在过去一年左右没有使用 Google 获取数据;当它使用 Google 时,每天的用户数量受到很大限制。

您可能还想在 iOS6 模拟器中尝试相同的 CLGeocoder 调用,看看是否获得更多数据。

您可以直接从您的应用调用 Google API,但请仔细阅读 TOS 以了解有关用户的限制。

【讨论】:

    【解决方案2】:

    好吧,看来是的,Apple 的 CLGeocoder 在正向地理编码(地址 -> 坐标)方面完全没有 Google Maps Geocoding API 准确,尤其是在美国以外的地区。使用尽可能完整地填写所有字段的地址字典比简单的地址字符串要好得多,但它仍然远远不够好。 Google 会(通常)在街道编号 5-10m 范围内为您提供坐标,如果幸运的话,Apple 会在正确街道的某处为您提供坐标。

    找到 Apple Developer Technical Note TN2289,其中详细说明了 CLGeocoder 支持的国家/地区。

    进一步的 iOS6 将停止支持使用谷歌地图

    【讨论】:

      猜你喜欢
      • 2015-07-27
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      相关资源
      最近更新 更多