显示Pin始终位于地图视图的中心,并在ios中计算lat long,地址

时间:2012-06-19 07:55:10

标签: ios mkmapview

在我的ios应用程序中,我想在地图上放置一个引脚,默认情况下会始终显示标注。在我看来,我显示的是lat,长的引脚。

我想要的是别针总是保留在地图的中心。当用户移动地图别针时,不要移动但移动地图后它的纬度变长。

我也希望显示来自该纬度的地址。

请指导方法。

我已尝试过此代码

[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];

缩放当前位置的地图 在地图中心添加图钉 显示lat long

问题 - 当我移动map.pin时也会被移动并且lat long没有被改变

1 个答案:

答案 0 :(得分: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];
}

请确保您的注释对象是类对象。

希望这会有所帮助......