iOS:使用CLGeocoder和Google Geocoder API进行反向地理编码的区别

3
我正在构建一款iOS应用程序,其中一个功能是通过用户在地图上的手势点击实现反向地理编码以获取街道地址。
使用CLGeocoder的反向地理编码功能运行应用程序时,我只能获取到城市和国家信息。在某些情况下,在主干道上我能够获取到主干道名称。
我认为这个限制来自Google Maps api。
但当我测试了这个示例(http://gmaps-samples.googlecode.com/svn/trunk/geocoder/reverse.html)后,我能够获得更准确和详细的信息,例如街道号码、名称和邮政编码。
这是否是CLGeocoder的限制?如果是,我该如何在我的应用程序中实现Google Maps api?

我发现了一个用于谷歌地理编码API的SVGeocoder包装器。我正在测试它,它确实带来了更详细的结果。 - alandalusi
我正在尝试使用SVGeocoder,但在10次尝试中有7次无法找到位置,在其余的3次中,它会返回正确的位置。如果您也遇到过类似问题,请问解决方法是什么?问题的根源是SVGeocoder将(纬度、经度)配对返回为(0,0),这导致我接下来的步骤出现错误,因为我正在使用这些值。 - Autonomous
2个回答

0

据我的了解,CLGeocoder在过去一年左右没有使用Google的数据;当它使用Google时,每天用户数量有明显限制。

你也可以尝试在iOS6模拟器中进行相同的CLGeocoder调用,看看是否能获得更多数据。

你可以直接从你的应用程序中调用Google API,但要小心阅读使用条款,以了解与用户相关的限制。


0

嗯,看起来是的,苹果的CLGeocoder在正向地理编码(地址->坐标)方面并不像谷歌地图地理编码API那么准确,特别是在美国以外的地区。使用填写了尽可能多字段的地址词典比简单的地址字符串效果要好得多,但仍然远远不够好。当谷歌会在街道号码范围内给你提供坐标时,苹果只会给你一个大致正确的街道上的坐标,如果你很幸运的话。

发现了苹果开发者技术说明TN2289,其中详细列出了CLGeocoder支持的国家和地区。

此外,iOS6将停止支持使用谷歌地图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接