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

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

Отtransformed Я говорю о том, чтовсе карты в китае преобразуютсяхотя это не так. Скорее,some Карты в Китае трансформируются, а некоторые нет.

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

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

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

ios 6 chinese maps

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

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

Ответы на вопрос(3)

Ваш ответ на вопрос