我正在构建一个 iPad 应用程序,它将逐屏显示来自 Google 的 Directions API 的方向。我想使用 CoreLocation 跟踪用户在物理空间中的进度并更新屏幕以跟随用户,类似于大多数方向应用程序。
我最初的想法是这样的:
- 对于方向上的每一步,抓住相应的折线
- 当 CoreLocation 更新时,检查纬度/经度对是否在折线上某个点的某个增量内(即,遍历折线上的所有点)。
- 如果位置在折线内,则留在同一屏幕上
- 如果不在折线上,则检查用户是否在下一步的折线某个子集的同一增量内(例如 10 个点),如果是,则前进到下一个屏幕。
- 如果不在下一条折线上,请提醒用户他们已经离开了路线。
这似乎效率低下而且不是特别准确......有没有更好的方法来做到这一点?