为什么我只能反转中国境内的地理编码位置?

时间:2015-04-15 06:22:04

标签: ios core-location clgeocoder

我使用Apple的CLGeocoder,当我检索地标的地址字典时,它对于中国境内的位置是预期的,但对于其他国家/地区的请求则为空。

CLGeocoder是不是应该在全球范围内运作?

以下是我打印addressDictionary时的内容:

[FormattedAddressLines: (
    ""
), CountryCode: ]

我试图将我的设备用英语,因为我知道它改变了addressDictionary的内容,但没有成功。

2 个答案:

答案 0 :(得分:0)

Apple对位于中国的用户使用高德地图,不允许访问国外地区的地图相关数据。所以我认为没有办法在中国境内使用CLGeocoder在中国以外的地方。我想在这种情况下我会使用Google API。

答案 1 :(得分:0)

执行某些测试后,Geocoder服务有两种类型的设置:

    位于中国大陆的用户
  1. Autonavi (amap.com)
  2. 世界其他地区的
  3. Apple Map (我没有尝试过所有国家/地区)
  4. 与您解释的一样,Autonavi服务无法将Geocode用于中国大陆以外的地区。 您可以通过打印 [CLPlacemark]

    来查看这两项服务

    我们可以看到不同的version_domain:

    对于中国:

    "version_domain" = (
                    autonavi,
                    revgeo,
                    cn );
    

    中国以外(日本):

    "version_domain" = (
                    apple,
                    revgeo,
                    JP );
    

    怎么做?

    好吧,即使有时地理编码可能有效,我们也不能依赖它。我们不能依赖谷歌,所以你可以看看诺基亚这里地图。否则,您应该更改应用与中国用户互动的方式。也许您只能为中国AppStore发布特定的应用程序。

    如何在开发过程中更改地理编码器?

    就我而言,只要我连接到中国的电话运营商(例如:中国移动),地图就会切换到Autonavi。使用Wifi也会产生相同的效果。

    我所做的是使用飞行模式,然后连接到中国以外的VPN,最后我终止并重启我的应用程序。

    在模拟器上,您需要模拟位置,然后在Mac上使用VPN。

    <强>结论

    中国不会让开发人员轻松上手,但我相信总有一个解决方案。