我有一个的MKMapView配置,像这样:MapKit - didUpdateToLocation叫,但用户位置不更新
mapView = [[MKMapView alloc] init];
[mapView setMapType:MKMapTypeStandard];
[mapView setShowsUserLocation:YES];
[mapView setDelegate:self];
我再初始化CLLocationManager并调用startUpdatingLocation。
我使用iSimulate从我的手机发送GPS数据到模拟器,由于使用我的正确GPS坐标调用CLLocationManager委托方法,仿真器似乎正在工作。然而,MKMapView决不会将蓝点从Cupertino移开。
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
NSLog(@"Did Update Location = %f/%f", [newLocation coordinate].latitude, [newLocation coordinate].longitude);
NSLog(@"Current User Location = %f/%f", [[mapView userLocation] coordinate].latitude, [[mapView userLocation] coordinate].longitude);
}
上述方法输出以下:
>>> Did Update Location = 40.740100/-73.989900 # Correct
>>> Current User Location = 37.331693/-122.030457 # Cupertino... Incorrect
即使我手动更新用户位置的坐标使用:
[[mapView userLocation] setCoordinate:[newLocation coordinate]];
的点仍然只是坐在库珀蒂诺。我错过了什么吗?
它永远不会进入循环,你永远不会得到新的位置只是检查它... – shankar 2013-01-19 07:13:17