【发布时间】:2019-07-10 13:39:52
【问题描述】:
我们正在 react-native 中开发一个多平台(android 和 ios)应用程序,主要处理地理位置数据,因此它高度依赖于数据的准确性和精度。例如,应用程序每 5 秒累积 - 读取和保存 - 用户的地理位置数据,持续时间为 10 分钟(我们称之为轨道)。因此,在跟踪期间,大约保存了 200 个测量值。之后,我们会根据赛道积累的数据进行不同的计算,并将结果可视化给用户。
虽然在 iphone 上以物理(几乎)相同的高度测量的数据的高度图具有相当线性/平滑的特性,但在 android 上往往有 +-5 米的峰值。假设我们要测量轨道期间升高的总米数,从而计算后续测量值之间的差异总和。现在想象一下,所提到的不精确性对结果的影响有多大——每 5 秒可能会有 5 米的高度变化。尽管物理上您的总海拔是 +-0 米,但计算出的总海拔可能会有很大差异。
那么,消除错误,对我们来说,基本上有两种方法:
- 使测量更加准确和精确(这是自然的)
- 执行某种近似并相应地调整测量值(这很老套)
第一种方法听起来要好得多,但我们知道特定设备的硬件限制 - 我们根本无法使用我们的软件修复不准确的硬件。问题是,即使在同一设备上,其他商业应用程序(即 Runtastic)也能“更好地”执行测量(甚至离线)。这让我想到了第二种(近似)方式。这种方法相当老套,虽然在很多情况下它可以产生好看的结果,但我们认为(但不能证明)没有这样一种预先近似值不会“过多地”破坏数据。
所以,我们的问题是:
- 有哪些技术可以让每个高度测量在 android 上尽可能准确和精确?哪些工具可以用来实现这一目标,我们应该如何使用它们来获得最佳体验?我们可以想到:
- gps 高度
- nmea 海拔
- 气压计
- 在线API根据经纬度获取高度
- 对累积的数据应用某种近似值是否值得?如果是这样,我们应该考虑哪些方面(甚至更好的想法)?这种技术常见吗?
- 有没有我们没有提到的其他解决方案?
提前致谢!
【问题讨论】:
标签: android geolocation gps altitude