2

私のiOSアプリケーションでは、デフォルトで常にコールアウトを表示するピンをマップに配置したいと思います。そのカルトでは、ピンの緯度と経度を表示しています。

私が欲しいのは、ピンが常にマップの中央にあることです。ユーザーがマップを移動すると、ピンは移動しませんが、マップを移動した後、その緯度は変更されます。

また、その緯度からの住所を表示したいと思います。

方法を教えてください。

私はこのコードを試しました

[mMapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];
MyAnnotation* obj = [[MyAnnotation alloc] initWithLocation:mMapView.centerCoordinate withPinType:StartPoint];
[obj setTitle:[NSString stringWithFormat:@"%f, %f",mMapView.centerCoordinate.latitude,mMapView.centerCoordinate.longitude]];
[mMapView selectAnnotation:obj animated:YES];
[mMapView addAnnotation:obj];

現在の場所で地図をズームし、地図の中央にピンを追加して緯度を表示します

問題-map.pinも移動し、緯度が変更されなかった場合

4

1 に答える 1

1

-viewDidLoadメソッドに、次のコードを追加します。

[mMapView.userLocation addObserver:self  
                                forKeyPath:@"location"  
                                   options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld)  
                                   context:NULL];

ここで、次の方法を含めます。

// Listen to change in the userLocation
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{
    [object setTitle:[NSString stringWithFormat:@"%f, %f",mMapView.centerCoordinate.latitude,mMapView.centerCoordinate.longitude]];
    [mMapView selectAnnotation:object animated:YES];
}

アノテーションオブジェクトがクラスオブジェクトであることを確認してください。

これがお役に立てば幸いです...

于 2012-06-19T12:28:22.577 に答える