我想知道是否有某种方法可以使 CLLocationManager 不会自动返回缓存位置。我理解文档说“位置服务尽快返回初始位置,在可用时返回缓存信息”,但该缓存位置可能距离用户当前位置非常远,如果可能的话,我希望它更精确。
感谢您的帮助!
最佳答案
你无法阻止它缓存,但过滤掉缓存的数据并不难。核心位置包括带有其位置的时间戳。将位置的时间戳与应用程序启动时保存的时间戳进行比较,您将能够辨别哪些位置是旧的(缓存的,在应用程序声明之前找到的)和哪些是新的。扔掉旧的。
位置时间戳是一个 NSDate,因此只需在应用启动时获取 [NSDate date]
的值,并将其用作过滤位置时的引用点即可。一旦开始获取新数据,您甚至可以丢弃引用值,并将零引用日期视为暗示应信任新位置。
关于iphone - 停止返回缓存的 CLLocationManager 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262177/