ios CLLocationManager didUpdateToLocation 经纬度迁移

Posted

技术标签:

【中文标题】ios CLLocationManager didUpdateToLocation 经纬度迁移【英文标题】:ios CLLocationManager didUpdateToLocation Latitude and longitude migration 【发布时间】:2013-02-18 03:33:35 【问题描述】:

我使用这段代码来获取经度和纬度。

    (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
         fromLocation:(CLLocation *)oldLocation 
    NSLog(@"%f",newLocation.coordinate.latitude);
    self.location = newLocation;

但是我得到的经纬度与实际地理位置有偏差。如何解决这个问题?

【问题讨论】:

我不明白这个问题。你能解释一下你的期望吗? 我想得到经度和纬度。但与实际地理位置有偏差。我怎样才能得到准确的位置? 【参考方案1】:

您应该测试返回的 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:

【讨论】:

您需要测试该类是否支持使用respondsToSelector: 方法的方法 - 检查developer.apple.com/library/mac/documentation/Cocoa/Reference/…:了解更多信息。

以上是关于ios CLLocationManager didUpdateToLocation 经纬度迁移的主要内容,如果未能解决你的问题,请参考以下文章

[iOS][Background][CLLocationManager]地图精度不好

CLLocationManager 未在 iOS 10.2 [Swift] 中调用 didUpdateLocation()

iOS 13 检查 CLLocationManager 的临时授权状态

iOS CLLocationManager 定位

cllocationmanager不要求用户权限ios8

IOS 8 CLLocationManager 问题(授权不起作用)