我应该多久在 Ionic 2 中跟踪设备位置(例如 Uber、Taxi Apps、...)

Posted

技术标签:

【中文标题】我应该多久在 Ionic 2 中跟踪设备位置(例如 Uber、Taxi Apps、...)【英文标题】:How often should I track device position in Ionic 2 (e.g. Uber, Taxi Apps, ...) 【发布时间】:2017-04-20 19:16:34 【问题描述】:

我正在研究 Ionic 2 的 Cordova 地理定位插件,并希望在应用打开时将设备位置发送到我的服务器。

为了跟踪设备的路线,我想一直将位置发送到服务器。我想知道我应该多久做一次。每次位置变化似乎都太频繁了!?

其他跟踪应用如何做到这一点?

【问题讨论】:

【参考方案1】:

位置更新的粒度与消耗的电池电量和用于传输位置信息的网络带宽成反比。

我使用以下准则:

    只要位置超过定义的距离“D”,就发送位置 自上次成功传输后经过定义的时间段“T”时传输位置 应用启动时传输位置 Activity 暂停时禁用传输,Activity 恢复时启用传输 始终保存上次成功传输(位置和时间戳)以供将来参考

我通常将定义的参数“D”和“T”存储在配置文件中,以便于测试应用程序在不同值下的执行情况。

使用粗略的 GPS 作为参考,位置精度很少优于 15 米(未应用 GPS 校正)。考虑到这一点,您可以将“D”值设置在 15-30 米之间。如果您正在跟踪车辆,则可能很快就会超过该距离,在这种情况下,可能最好使用较大的值以避免发送过多的数据。

您还可以根据位置速度(速度)增加“D”。这将增加“D”,车辆移动得越快,从而保持一致的带宽使用。

“T”的值实际上取决于您的应用程序需求。如果车辆闲置,那么我通常每 5 分钟传输一次更新。

我使用了 30-100 米之间的距离 ('D')。如果您在城市环境中监控车辆位置,您需要能够确定该车辆在拥挤的街道规划中的位置。如果您曾经使用 GPS 设备在较老的城市中导航,这一点就会变得非常清楚,因为设备经常在靠近的街道(即纽约、波士顿、蒙特利尔等)之间混淆。在这种情况下,较小的值(> 15m)是优选的。

为了增加健壮性,您可能希望在应用程序中添加一些启发式方法。例如,流行的汽车售后 GPS 设备必须在其应用程序中实现更多智能,以便将车辆位置捕捉到街道或道路上的某个位置。否则,车辆将永远不会出现在街道上,而是出现在沟渠中的某个地方,或者就在地图上的建筑物中间。

这种启发式方法的一个示例是假设除非车辆到达交叉路口,否则它仍然在之前报告的同一条街道上。

最终,您需要尝试不同的配置才能找到最适合您需求的配置。

【讨论】:

谢谢,你用什么作为D和T? 我已在原始答案中添加了详细信息。我喜欢让“D”随速度增加,以保持“T”尽可能一致,否则更快的速度会导致更频繁地使用网络带宽。

以上是关于我应该多久在 Ionic 2 中跟踪设备位置(例如 Uber、Taxi Apps、...)的主要内容,如果未能解决你的问题,请参考以下文章

ionic vue 背景地理定位跟踪在 5 分钟后停止

Ionic ios构建不使用位置

Javascript(Ionic)中两个移动设备之间的距离

如何在 ionic v1 中跟踪 Firebase 分析中的事件

在数据库中跟踪用户位置

我应该为地理定位应用程序使用 REST API 还是 Socket.io?