2

在我的 ios 应用程序中,我想在地图上放置一个默认情况下始终显示标注的图钉。在该标注上,我显示的是 lat、long of pin。

我想要的是 pin 始终保持在地图的中心。当用户移动地图 pin 时不会移动,但移动地图后它的 lat long 会改变。

我还想显示那个经纬度的地址。

请指导有什么方法。

我试过这段代码

[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 时,也被移动并且 lat long 没有改变

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 回答