2014-12-19 10 views
3

Я нашел три способа использования MKMapCamera, и я хочу знать, какой из них наиболее рекомендуется. Моя цель - следить за пользователем, и я хочу обновить камеру при каждом обновлении местоположения (так каждую секунду).Каков наилучший способ использования MKMapCamera

1.

  MKMapCamera *newCamera = [MKMapCamera camera]; 
      [newCamera setCenterCoordinate:newCoordinate]; 
      [newCamera setPitch:60]; 
      [newCamera setHeading:heading]; 
      [newCamera setAltitude:eyeAltitude]; 
      [mapView setCamera:newCamera]; 

2.

  MKMapCamera *newCamera = [MKMapCamera cameraLookingAtCenterCoordinate:newCoordinate 
                  fromEyeCoordinate:oldCoordinate 
                    eyeAltitude:eyeAltitude]; 
      [newCamera setPitch:pitch]; 

      [mapView setCamera:newCamera]; 

3.

  MKMapCamera *oldCamera = mapView.camera; 
      [oldCamera setCenterCoordinate:newCoordinate]; 
      [oldCamera setPitch:60]; 
      [oldCamera setHeading:heading]; 
      [oldCamera setAltitude:eyeAltitude]; 

Память мудрая кажется Н.Р. 3 самый приличный один или это класс синглтон? В большинстве примеров они используют nr1.

Для nr3 Я не могу заставить анимацию работать.

Спасибо!

ответ

2

Используя MKMapCamera, вы можете установить ориентацию карты, не испортив трансформирование в представлении или даже обнаружив заголовок пользователя.

MKMapCamera *mapCamera = [[self.mvMap camera] copy]; 
[mapCamera setHeading:headingDegrees]; 
[self.mvMap setCamera:mapCamera animated:YES]; 

Если вы не хотите анимацию, вы можете просто установить новый заголовок на существующую камеру:

[self.mapView.camera setHeading:heading]; 
+0

я не уверен, как это помогло бы мне :) –

Смежные вопросы