28

对于 iOS 6 上的中文地图,MapKit 似乎会根据您设备所在的位置来选择地图提供者。如果您在中国,它将使用 AutoNavi 地图,否则它将使用默认的 Apple 地图。更复杂的是,AutoNavi 地图的转换方式似乎与 iOS 5 上的 Google 地图相同,而默认的 Apple 地图并未进行转换。

变形我说的是中国所有的地图都是变形的虽然这不是真的。相反,中国的一些地图是经过改造的,而有些则不是。

由于地图通常偏移约 500 米,因此这种变换很难在地图上正确放置注释。由于无法反转实际地图的变换,因此解决方案是将相同的偏移量应用于注释。

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

下面的上海地图说明了这种情况(实际的变换偏移量没有演示)。

ios 6中文地图

那么,有没有办法在运行时知道是否使用了转换或未转换的中国地图?处理这个问题的其他想法?

编辑:在中国通过代理路由网络流量会改变模拟器中的地图外观,因此地图提供商的选择必须基于 IP。

4

3 回答 3

1

如果您绝对需要一致性 - 即 iOS 版本之间以及美国或中国用户之间的一致性,您可以始终使用Bing Maps SDK 。虽然我建议坚持使用 MapKit。

于 2012-09-25T19:56:01.173 回答
1

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

于 2013-08-02T07:58:10.637 回答
0

你不能从手机中获取地理数据,如果他们在中国,应用转换后的注释吗?

于 2012-09-25T19:53:51.220 回答