CLGeocoder在iOS 5.1和6.0模拟器上返回不同的地标

时间:2012-11-30 02:20:17

标签: ios ios-simulator geocoding core-location clgeocoder

我正在使用CLGeocoder方法geocodeAddressString:completionHandler:来获取地标。

使用像 Avinguda de Madrid 100 这样的字符串进行测试,我得到:

  • 3个结果在6.0模拟器
  • 1个结果在5.1模拟器中

在iPhone和iPad模拟器上都会发生这种情况。

我认为我的代码错了,但Apple的Geocoder Demo project也有这个问题,正如您在下面的两个屏幕截图中看到的那样(请注意指向两个屏幕截图中显示的结果的点):

enter image description here enter image description here

如果您想在Apple的示例代码中重现它,

  • 选择转发标签(默认情况下会打开)。
  • 在文本字段中输入 Avinguda de Madrid 100
  • 点击地理编码字符串按钮(不启用包含提示区域)。

你以前遇到过这个问题吗?我错过了什么吗?或者我应该转移到Google Places API吗?

1 个答案:

答案 0 :(得分:0)

iOS 6 SDK支持iOS5和iOS6。 MapKit在iOS5上使用Googles API,在iOS6上使用自己的Apple API。 (依赖性取决于系统版本,而不是SDK版本。)

我猜,iOS 6 SDK的CLGeocoder使用5.1模拟器中的Google API和6.0模拟器中的Apple API。因此,我期待不同的结果。

如果CLGeocoder在两种情况下都使用Apples服务,我仍然会发现由于上述更改而产生的差异。