0

我正在尝试使用 cllocationmanager 获取我当前的位置。

问题:

委托方法

-(void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

总是在 viewdidappear 之后运行。我在viewDidLoad 中startupdatingLocation。并在 viewdidLoad 的末尾调用方法 SetMapView 。

-(void)setMapView{

MKCoordinateRegion zoomIn = plotsMapView.region;
zoomIn.span.latitudeDelta  = 0.2;
zoomIn.span.longitudeDelta  = 0.2;



zoomIn.center.latitude =  self.currentLocation.coordinate.latitude;//[[[m_CityMarkerArray objectAtIndex:0] valueForKey:@"lat"] doubleValue];
zoomIn.center.longitude = self.currentLocation.coordinate.longitude;//[[[m_CityMarkerArray objectAtIndex:0] valueForKey:@"lng"] doubleValue];



NSLog(@"%f LAT",self.currentLocation.coordinate.latitude);

[plotsMapView setRegion:zoomIn animated:YES];



}

LAT 返回 0.0000。

但是,如果我在 viewDidAppear 中调用相同的方法,它就可以正常工作。我在 viewdidload 中需要它,因为每次我回来查看时。如果我在 viewDidAppear 中调用该方法,我会将地图重新​​加载到基本位置。

请帮忙!谢谢!

4

1 回答 1

1

在didUpdateToLocation方法中调用setMapView方法,前提是您将位置管理器委托设置为self并在 .h 文件中添加CLLocationManagerDelegate 。在您的 didUpdateToLocation 中,在调用 setMapView 方法之前,将 newLocation 坐标分配给您的 currentLocation 坐标。

于 2012-09-05T15:13:51.630 回答