百度地图定位didUpdateLocations为什么会触发两次?

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
CLLocation *cation =[locations objectAtIndex:0];
NSLog(@"纬度--%f",cation.coordinate.latitude);
NSLog(@"经度--%f",cation.coordinate.longitude);
[self.locationManager stopUpdatingLocation];//停止更新位置
}

阅读 8.6k
3 个回答

这不是百度的,百度的是- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation

百度底层会调用那些CL开头的方法,所有是有值的,建议删掉交给百度SDK处理
你只用调取- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation

为什么有时会出发两次,有时出发一次?

楼主,此didUpdateLocations代理方法,是会调用多次的,因为定位的时候,如果手机移动的话,经纬度也会跟着变化,此方法就是随之改变的经纬度

我做百度地图的时候定位需求没用到-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

以下几种
- (void)mapViewWillStartLocatingUser:(BMKMapView *)mapView
- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
- (void)mapViewDidStopLocatingUser:(BMKMapView *)mapView

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题