2 summericeredtea summerICEREDTEA 于 2013.02.18 11:13 提问

ios CLLocationManager didUpdateToLocation 经纬度偏移的问题
lbs
- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
         fromLocation:(CLLocation *)oldLocation {
    NSLog(@"%f",newLocation.coordinate.latitude);
    self.location = newLocation;
}

得到的经纬度与实际地理位置始终会有偏移 请问这个问题该如何解决?

3个回答

zxd_72
zxd_72   2013.02.18 15:33
已采纳

你应该测试 CLLocation 对象返回值的准确性,确保符合位置的准确性。

if (newLocation.horizontalAccuracy > 1000) {
  // Throw away this location and wait for another one as this is over 1km away
}

另外,locationManager:didUpdateToLocation:fromLocation:方法可能在iOS6不可用。所以在iOS6以上版本你应该使用locationManager:didUpdateLocations:

zxd_72
zxd_72 你需要用 respondsToSelector:测试 类是否支持方法。参考https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/occ/intfm/NSObject/respondsToSelector
接近 5 年之前 回复
summerICEREDTEA
summerICEREDTEA 如果要兼容 5 6这样的代码应该怎么写啊?
接近 5 年之前 回复
flyingcut
flyingcut   2013.08.28 16:10

应该是用第三方SDK展现位置或者地图吧,经纬度值需要转换,找找SDK里的相关函数,这个是国家要求的,不能直接暴露。

alibar1103
alibar1103   2014.02.17 16:58

請問一下原提問者,使用locationManager:didUpdateLocations:有解決經緯度偏移了嗎?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!