我使用Apple的CLGeocoder
,当我检索地标的地址字典时,它对于中国境内的位置是预期的,但对于其他国家/地区的请求则为空。
CLGeocoder
是不是应该在全球范围内运作?
以下是我打印addressDictionary
时的内容:
[FormattedAddressLines: (
""
), CountryCode: ]
我试图将我的设备用英语,因为我知道它改变了addressDictionary
的内容,但没有成功。
答案 0 :(得分:0)
Apple对位于中国的用户使用高德地图,不允许访问国外地区的地图相关数据。所以我认为没有办法在中国境内使用CLGeocoder在中国以外的地方。我想在这种情况下我会使用Google API。
答案 1 :(得分:0)
执行某些测试后,Geocoder服务有两种类型的设置:
与您解释的一样,Autonavi服务无法将Geocode用于中国大陆以外的地区。
您可以通过打印 [CLPlacemark]
我们可以看到不同的version_domain:
对于中国:
"version_domain" = (
autonavi,
revgeo,
cn );
中国以外(日本):
"version_domain" = (
apple,
revgeo,
JP );
怎么做?
好吧,即使有时地理编码可能有效,我们也不能依赖它。我们不能依赖谷歌,所以你可以看看诺基亚这里地图。否则,您应该更改应用与中国用户互动的方式。也许您只能为中国AppStore发布特定的应用程序。
如何在开发过程中更改地理编码器?
就我而言,只要我连接到中国的电话运营商(例如:中国移动),地图就会切换到Autonavi。使用Wifi也会产生相同的效果。
我所做的是使用飞行模式,然后连接到中国以外的VPN,最后我终止并重启我的应用程序。
在模拟器上,您需要模拟位置,然后在Mac上使用VPN。
<强>结论强>
中国不会让开发人员轻松上手,但我相信总有一个解决方案。