2012年6月22日金曜日

UIMapViewで今いる場所を表示(addObserverで現在地を中心に表示させる)

















IBOutletでマップを追加したら、

デリゲートをselfで設定し、
addObserverを追加し、ロケーションを表示させるキーを設定します。

- (void)viewDidLoad {
    [super viewDidLoad];

self.mapView.delegate = self;
[self.mapView.userLocation addObserver:self forKeyPath:@"location" options:0 context:NULL];
}

//現在地を表示させるボタンにアクションを設定
- (IBAction) showHere : (id)sender {
// show current location
mapView.userLocation.title = @"現在地";
mapView.showsUserLocation = YES;
mapView.centerCoordinate = mapView.userLocation.location.coordinate
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {  
    mapView.centerCoordinate = mapView.userLocation.location.coordinate;  
// 一度しか現在地に移動しないなら removeObserver する  

    [mapView.userLocation removeObserver:self forKeyPath:@"location"];  


これで現在地を何度でも表示させる事が出来ます。





0 件のコメント:

コメントを投稿