使用核心位置检测隧道

时间:2015-04-20 14:03:44

标签: ios objective-c core-location

我正在使用核心位置进行基于转弯的导航,并希望在隧道中显示“GPS丢失”警报。

问题是以下两个方案看起来与应用程序相同:

  • 用户开车进入隧道。 GPS更新停止,因为无法知道用户的位置。
  • 用户在十字路口停留。 GPS更新停止,因为用户不再移动。

我需要将这两种情况区分开来。想法吗

我尝试查看horizontalAccuracy属性,但有时更新会完全停止,因此没有新的horizontalAccuracy信息。

1 个答案:

答案 0 :(得分:1)

查看locationManager:didFailWithError:方法:

  

如果位置服务无法立即检索位置,   它会报告kCLErrorLocationUnknown错误并继续尝试。

要确定第二种情况(用户停止),请使用locationManagerDidPauseLocationUpdates:方法:

  

当位置管理器检测到设备的位置不是时   更改,它可以暂停更新的交付,以便关闭   适当的硬件和节省电力。当它这样做时,它会调用   这种方法让你的应用知道发生了这种情况。