CMMotionActivity 详述汽车以区分汽车和火车

CMMotionActivity detailing automotive to distinguish between car and train

我正在使用 CMMotionActivity 并尝试在框架 return automotive 类型时区分汽车、火车和公共汽车。

仅使用CoreMotion是不可能的,所以我认为有必要使用第3方服务,例如云服务或第3方框架。

有没有人遇到过同样的问题? 谢谢

前段时间我遇到了同样的问题。长话短说,这对现有的任何事物来说几乎是不可能的。不过,自己烤也难。这是我解决它的方法-

除了运动权限外,我的应用还具有 background 位置权限。后台位置使应用程序保持活动状态。您可能知道,您无法从后台启用位置监控,但您可以根据需要将其保持活动状态,并且可以从后台更改服务质量。为了避免耗尽电池电量,我将其设置为尽可能低的数据质量,这样它在闲置时基本上不会影响功耗。这样,您就可以在后台访问运动数据,无需打开应用程序即可启用精确的位置跟踪,您只需永远不要关闭位置监控即可。

我使用这个后台权限来监控运动数据,每当它以一定的置信度阈值变为automotive时,我将位置数据质量提高到最佳可用,并尽快将其存储到磁盘尽可能。当运动芯片报告 walking 或其他一些非汽车 activity 时,表明汽车会话已经结束,我提示用户打开应用程序填写其他详细信息(这是一个驾驶跟踪器税收目的)。当用户打开应用程序时,我从地图提供商那里提取火车轨道数据,然后 运行 快速 "algorithm" 检测汽车 activity 是否与任何火车轨道相关。如果有一定的信心,我会丢弃数据,因为我不需要它,但这是你应该做的。只需将高质量的位置数据与火车轨道的地图数据相关联。

我的火车轨道数据是从我所在国家/地区的政府那里获得的,因为它是开放的,但我想其他地图提供商也可以使用这些数据。

希望对您有所帮助,抱歉无法提供预烘焙服务!