vaguely

和歌山に戻りました。ふらふらと色々なものに手を出す毎日。

位置情報で遊んでみる その2

現在地を地図の中心に表示する

MKMapViewのsetUserTrackingModeで、現在地に合わせて地図も動くようにします。

MainViewController.m

- (void)viewDidAppear:(BOOL)animated {
    // ユーザーの動きに合わせてMapを追従させる
    [_mmvMap setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:YES];
}

ボタンを押したときに、現在地を画面(MKMapView)の中央に表示する

ボタン(その1の画面左下)を押したときに、現在地が画面中央に表示されるようにします。

MainViewController.m

- (IBAction)btnCurrentLocationTouched:(id)sender {
    // 地図の中心座標に現在地を設定
    // 表示範囲の緯度、経度を指定
    MKCoordinateSpan mcsSpan = MKCoordinateSpanMake(0.5, 0.5);
    // 表示する地点(現在地)を指定する
    CLLocationCoordinate2D clcCenter = _mmvMap.userLocation.location.coordinate;
    // MKMapViewで指定範囲、地点を表示する
    MKCoordinateRegion mcrRegion = MKCoordinateRegionMake(clcCenter, mcsSpan);
    [_mmvMap setRegion:mcrRegion animated:YES];
}
  • setRegionで移動しますが、その際animatedをYESにしておくことで、アニメーションが効いてヌルっと動きます。

参考