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