Меньший MapKit Zoom Интервал iPhone - PullRequest
2 голосов
/ 12 июля 2011

Я пытаюсь увеличить масштаб до определенного региона. У меня проблема в том, что, насколько я могу судить, программно, вы можете установить только фиксированный уровень масштабирования. Я сделал тестовое приложение, чтобы продемонстрировать это. Я использую фиксированные координаты центра, а затем просто изменяю размер в метрах. В тестах, которые я провел между 1000 и 4000, уровни масштабирования приблизительно равны: <1000 <1940, 1940 <3865, 3865 <4000+. Это единственные три уровня масштабирования, которые позволят вам перейти от 1000-4000. Проблема, с которой я сталкиваюсь, заключается в том, что уровень масштабирования, который я хочу, находится где-то между 1940 и 3865, просто потому, что ниже 1940 года мои аннотации не помещаются, и больше чем 3865, изображения выглядят очень плохими по сравнению с меньшим увеличением, и что действительно расстраивает, так это то, что я могу установить его правильно, с подгонкой аннотаций и хорошо выглядящим изображением, увеличивая приложение, но не программно. </p>

Кто-нибудь знает более точный способ установки этого? (Я пытался использовать то же самое тестовое приложение на длинных / латинских диапазонах - имеет те же границы).

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 13 июля 2011

MapKit позволяет только устанавливать интегральные уровни масштабирования. Подайте запрос на улучшение для неинтегрированных уровней масштабирования.

0 голосов
/ 21 июля 2011

Да, это проблема, но вы можете попытаться найти значения, которые соответствуют вашим потребностям. Числа могут быть не такими, как вы хотите. Вы должны понять это, посмотрев на карту. Я должен был сделать то же самое сегодня, и я сделал это:

  1. реализован mapView: regionDidChangeAnimated: записывается текущая область карты. Я получил 0,26 ... и 0,24 ... как диапазон, но даже если я поместил эти значения, я не получил тот же уровень масштабирования.

  2. Поскольку я уменьшил масштаб больше, чем хотел, я начал уменьшать эти значения и использовал 0,2 и 0,18.

Единственное решение, которое в настоящее время приходит на ум, - это метод проб и ошибок. Вы также можете получить значения уровня масштабирования, которые вы хотите, вручную щепоткой. Затем установите регион программно, используя эти значения. Если карта увеличена, попробуйте пропорционально уменьшить дельту широты и долготы. Если оно увеличено, попробуйте увеличить их пропорционально.

Надеюсь, это поможет вам.

0 голосов
/ 19 июля 2011

В принципе, вы должны иметь возможность устанавливать произвольный уровень масштабирования с помощью setVisibleMapRect:animated: и setRegion:animated:. Однако , в MapKit, похоже, есть ошибка, которая "округляется" до следующего полного уровня масштабирования, как вы заметили ... довольно раздражающее поведение. Некоторое время назад я сообщил об этом Apple, и она остается открытой в соответствии с системой сообщений об ошибках. Мне жаль сообщать, что я не смог найти обходных путей.

...