Para los mapas chinos en iOS 6, parece que MapKit selecciona el proveedor de mapas según su ubicación. Si se encuentra en China, utilizará los mapas de AutoNavi, y de lo contrario utilizará los mapas de Apple predeterminados. Para complicar las cosas, los mapas de AutoNavi parecen transformarse de la misma manera que los mapas de Google en iOS 5, mientras que los mapas de Apple predeterminados no se transforman.¿Cómo lidiar con mapas chinos inconsistentes en iOS 6?
Por transformado Estoy hablando del hecho de que all maps in China are transformed, aunque esto no es verdad. Por el contrario, algunos mapas en China se transforman, mientras que otros no.
Esta transformación hace que sea difícil colocar anotaciones correctamente en el mapa ya que el mapa generalmente se desplaza unos 500 metros. Como no es posible invertir la transformación del mapa real, la solución es aplicar el mismo desplazamiento a las anotaciones.
There exists non-trivial ways to inverse the transform, at least for limited areas. El problema en iOS 6 es saber si el mapa se ha transformado o no para poder compensar las anotaciones de forma adecuada. En iOS 5, este problema no existía porque los mapas transformados se usaban de forma coherente.
Los siguientes mapas de Shanghai ilustran la situación (el desplazamiento de la transformación real no se ha demostrado).
Por lo tanto, habría alguna manera de saber en tiempo de ejecución si se transforman o se utilizan mapas no transformadas China? Otras ideas para lidiar con esto?
Editar: Enrutar el tráfico de red a través de un proxy en China cambia la apariencia del mapa en el simulador, por lo que la elección del proveedor de mapas debe basarse en IP.
¿La decisión de qué mapa se debe servir en función de la geolocalización del dispositivo solicitante o la configuración regional establecida para el dispositivo? Si se basa en la configuración regional, ¿es posible establecer la configuración regional cuando se solicita el mapa para obtener un resultado coherente? – Snips
Cambiar la configuración regional del dispositivo no hace la diferencia, por lo que parece basarse en la geolocalización mediante servicios de IP o de ubicación interna. –