Вращение MapView по компасу - PullRequest
4 голосов
/ 07 июня 2011

Я работаю над приложением Map, которое должно работать как оригинальный MapView на iOS. Мне нужно повернуть вид карты в соответствии со значением заголовка компаса. Я пытался MTLocation пример, также я пытался этот ответ Но мои результаты не очень хорошие.

Пожалуйста, смотрите скриншот.

enter image description here

Когда я поворачиваю вид карты в соответствии со значением заголовка, карта вращается, но, как видно на экране, плитки отсутствуют.

Как я могу решить эту проблему с дисплеем?

С уважением - Фатих

Ответы [ 3 ]

9 голосов
/ 07 июня 2011

Hy,

Я автор MTLocation. Кстати, спасибо за использование! Чтобы это работало, вы должны убедиться, что ваш MKMapView является подпредставлением представления вашего ViewController (а не самого представления). Затем вам нужно увеличить кадр вашего mapView с помощью простого Pytaghoras - вычисления: ширина и высота должны быть не меньше диагонали: sqrt (visibleWidth [320] ^ 2 + visibleHeight [480-88] ^ 2) = 506.

Так что значит

 mapView = [[MKMapView alloc] initWithFrame:CGRectMake(-100,-100,520,520)];

Надеюсь, что это помогло, пожалуйста, рассмотрите возможность голосования, если это решило вашу проблему.

0 голосов
/ 15 августа 2012

Я работаю над созданием собственного приложения для карт в iPhone.Я хочу, чтобы мои карты вращались, когда пользователь поворачивается.Я попробовал setUserTrackingMode, доступный в iOS 5, но по какой-то причине он не работает.Поэтому я решил воспользоваться помощью MTLocation framework здесь .

До сих пор я делал следующее.

  1. создал новый проект и скопировал в него все файлы .m и .h.
  2. Импорт MapKit.h иMTLocation.h.
  3. В Viewcontroller.h определено свойство для mapView (я должен определить свойство для locateMeItem).
  4. В ViewDidLoad вставьте код, указанный наконец страницы здесь .

Я получаю несколько ошибок:

  1. Невозможно увидеть кнопку locateMe при программном создании.
  2. Не определено свойство headingEnabled.
  3. myCustomSelector не действует.
  4. self.toolbar - панель инструментов не является экземпляром ViewController.

Я пробовал код в gist [dot] github [dot] com / 1373050, но я получаю похожие ошибки.

Может кто-нибудь объяснить подробную процедуру этого.

0 голосов
/ 07 июня 2011
  1. Вы можете рассмотреть возможность использования большего кадра для объекта MKMapView.Вероятно, это должен быть квадрат с каждой стороной, равной длине диагонали устройства.Проблема этого подхода заключается в том, что существуют области этого объекта, которые пользователь не увидит, но мы все равно обрабатываем информацию, такую ​​как представления, для аннотаций, связанных с этой областью.Другие свойства, такие как visibleMapRect, были бы наименее полезными.

  2. Другой альтернативой может быть увеличение масштаба путем масштабирования объекта MKMapView при вращении.Но это может сделать карту размытой (не проверенной).Вы можете уменьшить область, отображаемую на карте, но это может привести к частым обновлениям.Вы можете смотреть на середину, где вы не уменьшаете масштаб, пока карта не будет повернута на определенный угол.Вы также можете посмотреть на использование двух видов, когда один из видов находится за пределами экрана и обновлен, так что он может заменить вид после определенного поворота, чтобы он выглядел плавно.

...