私は持っていてMKMapView
、マップカメラの見出しを回転させて、ユーザーの見出しをたどろうとしています。自動追跡は、同時に制御したいズームレベルを強制するため、実行したくありません。
問題は、354 ~ 6 度の値を指定すると、カメラの向きが 0 に戻ることを発見したことです。たとえば、カメラの向きを 2 に設定すると、電話を別の向きに向けるまで、常に 2 と 0 の間を行き来します。
私の解決策は、この範囲の間にある場合は 0 にロックすることですが、これは最適ではありません。なぜこれが起こるのかについて誰かが情報を持っていますか? 見出しの変更時に呼び出されるメソッドは次のようになります。
- (void)setMapCameraPosition {
//354,6
if (self.heading <= 6 || self.heading >= 354) {
NSLog(@"****nulling heading. self.heading: %d camera.heading: %f", self.heading, self.mapView.camera.heading);
self.mapView.camera.heading = 0.0f;
}
else {
NSLog(@"changing heading. self.heading: %d camera.heading: %f", self.heading, self.mapView.camera.heading);
self.mapView.camera.heading = (double)self.heading;
}
}
if ステートメントがなく、カメラを自分の方向に設定しただけの場合、出力は次のようになります。
self.heading: 357 camera.heading: -0.000000
self.heading: 357 camera.heading: -0.000000
self.heading: 357 camera.heading: -0.000000
したがって、北に近い値を指定すると、その後一瞬で自動的に北に戻り、マップが永遠にジャンプするようになります。
マップが目的の方向を削除せずに、北に近い角度に方向を設定するにはどうすればよいですか?