Подтвердить что ты не робот

Как бороться с непоследовательными китайскими картами на iOS 6?

Для китайских карт на iOS 6, похоже, MapKit выбирает поставщика карт на основе вашего местоположения, где находится устройство. Если вы находитесь в Китае, он будет использовать карты AutoNavi, а также использовать карты Apple по умолчанию. Чтобы усложнить ситуацию, карты AutoNavi, похоже, преобразуются так же, как карты Google на iOS 5, тогда как карты Apple по умолчанию не преобразуются.

Преобразованным я говорю о том, что все карты в Китае трансформируются, хотя это неверно. Скорее, некоторые карты в Китае трансформируются, а некоторые - нет.

Это преобразование затрудняет правильное размещение аннотаций на карте, так как карта обычно смещается примерно на 500 метров. Так как невозможно изменить преобразование фактической карты, решение состоит в том, чтобы применить к аннотации одно и то же смещение.

Существуют нетривиальные способы инвертировать преобразование, по крайней мере, для ограниченных областей. Проблема в iOS 6 - это знать, преобразуется ли карта в способный соответствующим образом компенсировать аннотации. На iOS 5 эта проблема не существовала, так как преобразованные карты использовались последовательно.

Карты Шанхая, приведенные ниже, иллюстрируют ситуацию (фактическое смещение преобразования не показано).

ios 6 chinese maps

Итак, будет ли какой-нибудь способ узнать во время выполнения, используются ли трансформированные или нетранспортные карты Китая? Другие идеи для решения этой проблемы?

Изменить: Маршрутизация сетевого трафика через прокси-сервер в Китае меняет карту в симуляторе, поэтому выбор поставщика карты должен основываться на IP-адресе.

4b9b3361

Ответ 1

Вы всегда можете использовать Bing Maps SDK, если вам абсолютно необходима согласованность - это согласованность между версиями iOS и между людьми в США или Китае. Хотя я бы рекомендовал придерживаться MapKit.

Ответ 3

Не могли бы вы получить геоданные с телефона, и если они в Китае применяют преобразованные аннотации?