如何处理iOS 6上不一致的中国地图?

对于iOS 6上的中国地图,似乎MapKit会根据您设备所在的位置来select地图提供者。 如果您在中国,则会使用AutoNavi地图,否则将使用默认的Apple地图。 使事情变得复杂的是,AutoNavi地图似乎被转换成Google iOS 5上的地图,而默认的Apple地图不会被转换。

通过改变,我正在谈论中国所有的地图都被改变了的事实,尽pipe这不是事实。 相反,中国的一些地图是变化的,有些则不是。

这种变换使得难以在地图上正确地放置注释,因为地图通常偏移约500米。 由于不能扭转实际地图的变换,所以解决方法是将相同的偏移量应用于注释。

至less在有限的区域中存在非平凡的方式来反演变换。 iOS 6中的问题是知道地图是否被转换为能够适当地补偿注释。 在iOS 5上,这个问题并不存在,因为转换后的地图一直使用。

下面的上海地图说明了情况(实际的变换抵消没有被显示)。

ios 6中国地图

那么,在运行时是否会有任何方法知道是否使用了转换的或未转换的中国地图? 其他的想法来处理这个?

编辑:通过中国的代理路由networkingstream量在模拟器中改变地图外观,所以地图提供者的select必须基于IP。

如果您绝对需要一致的话,您可以随时使用Bing Maps SDK ,这就是iOS版本之间以及美国和中国人员之间的一致性。 虽然我会build议坚持MapKit。

这是关于火星坐标系统。 看看这个: https : //github.com/Mardinate/Mardinate

难道你不能从手机获取地理数据,如果他们在中国申请转换的注释?