5

MKMapCamera を使用する 3 つの方法を見つけました。どの方法が最も推奨されるかを知りたいです。私の目標はユーザーをフォローすることであり、場所の更新ごとにカメラを更新したいと考えています (毎秒)。

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];

メモリに関しては、nr 3 が最も適切なものと思われますか、それともシングルトン クラスですか? ほとんどの例では、nr1 を使用しています。

nr3 の場合、アニメーションを動作させることができません。

ありがとう!

4

2 に答える 2

4

MKMapCamera を使用すると、ビューの変換をいじったり、ユーザーの方向を検出したりすることなく、マップの向きを設定できます。

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

アニメーションが必要ない場合は、既存のカメラに新しい見出しを設定するだけです:

[self.mapView.camera setHeading:heading];
于 2014-12-19T10:42:22.707 に答える