MKMapView中心位置

3

在我的应用程序中,有一个MKMapView,我正在尝试获取当前可见的地图区域的中心坐标。我正在使用以下方法,以便如果用户移动可见区域,我将获得新的中心坐标。

- (void)mapView:(MKMapView *)mapView1 regionDidChangeAnimated:(BOOL)animated
{

CLLocationCoordinate2D centre = [mapView centerCoordinate];

NSLog(@"MAP CENTER = %f,%f",centre.latitude,centre.longitude);
}

问题在于,当我切换到包含MKMapViewUIViewController时,它会两次给出MAP CENTER = 0.000000,0.000000,然后才会给出实际坐标MAP CENTER = 55.755786,37.617633。我希望在切换到该UIViewController时能立即获得实际坐标。

2个回答

3

你当前的位置是坐标(55.755786,37.617633)吗?

MKMapView需要一些时间来获取GPS锁定,以获取当前位置的坐标。在那之前,centerCoordinate可能会返回(0,0)


这段代码 MKUserLocation *userLocation = mapView.userLocation; MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance ( userLocation.location.coordinate, 500000, 500000); [mapView setRegion:region animated:NO]; 是导致问题的原因。如果我删除这段代码,地图的 centerCoordinate 将会是 30.0000,-40.0000,而我不想要这个结果。为了暂时解决这个问题,我已经将 centerCoordinate 设为静态值。 - Ankur Arya

1

请试试这个,可能会对你有帮助。

self.mapView.centerCoordinate = self.mapView.userLocation.location.coordinate;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接