【问题标题】:How do I perform geolocation to get data as accurate and precise as possible?如何执行地理定位以获取尽可能准确和精确的数据?
【发布时间】:2019-07-10 13:39:52
【问题描述】:

我们正在 react-native 中开发一个多平台(android 和 ios)应用程序,主要处理地理位置数据,因此它高度依赖于数据的准确性和精度。例如,应用程序每 5 秒累积 - 读取和保存 - 用户的地理位置数据,持续时间为 10 分钟(我们称之为轨道)。因此,在跟踪期间,大约保存了 200 个测量值。之后,我们会根据赛道积累的数据进行不同的计算,并将结果可视化给用户。

虽然在 iphone 上以物理(几乎)相同的高度测量的数据的高度图具有相当线性/平滑的特性,但在 android 上往往有 +-5 米的峰值。假设我们要测量轨道期间升高的总米数,从而计算后续测量值之间的差异总和。现在想象一下,所提到的不精确性对结果的影响有多大——每 5 秒可能会有 5 米的高度变化。尽管物理上您的总海拔是 +-0 米,但计算出的总海拔可能会有很大差异。

那么,消除错误,对我们来说,基本上有两种方法:

  • 使测量更加准确和精确(这是自然的)
  • 执行某种近似并相应地调整测量值(这很老套)

第一种方法听起来要好得多,但我们知道特定设备的硬件限制 - 我们根本无法使用我们的软件修复不准确的硬件。问题是,即使在同一设备上,其他商业应用程序(即 Runtastic)也能“更好地”执行测量(甚至离线)。这让我想到了第二种(近似)方式。这种方法相当老套,虽然在很多情况下它可以产生好看的结果,但我们认为(但不能证明)没有这样一种预先近似值不会“过多地”破坏数据。

所以,我们的问题是:

  1. 有哪些技术可以让每个高度测量在 android 上尽可能准确和精确?哪些工具可以用来实现这一目标,我们应该如何使用它们来获得最佳体验?我们可以想到:
    • gps 高度
    • nmea 海拔
    • 气压计
    • 在线API根据经纬度获取高度
  2. 对累积的数据应用某种近似值是否值得?如果是这样,我们应该考虑哪些方面(甚至更好的想法)?这种技术常见吗?
  3. 有没有我们没有提到的其他解决方案?

提前致谢!

【问题讨论】:

    标签: android geolocation gps altitude


    【解决方案1】:
    1. GPS 高度是最好的。但这取决于gps芯片。有一些高精度(高成本)。大多数手机 GPS 也使用在线获取数据(以获得良好的热启动)

    2. 要平滑 GPS 数据(或任何其他数据),您可以使用卡尔曼滤波器。它复杂而沉重。既能保证结果,又能很好地避免误导数据。

      您可以根据之前的数据包(均值过滤器)忽略误导性数据包 - 简单,但应谨慎编码

    注意:我没有使用气压计。我没有它就给出了答案。祝你好运

    【讨论】:

      【解决方案2】:

      如果您有气压计,那么它在海拔高度上的准确度可能比您使用手机质量的 gps 获得的要好得多。这就是为什么高端自行车电脑和 GPS 跟踪手表中装有气压计的原因。如果您对相对高度差异而不是实际的实际高度感兴趣,则尤其如此。要使用气压计获得良好的实际高度,您需要一些合理的校准方案并注意天气随时间的影响。

      无论您的海拔数据来源是什么,您都应该期望对数据进行某种形式的后处理以获得合理的结果。需要进行什么处理将取决于您的情况以及您认为重要的内容。

      要在轨道上完成总攀爬,您需要考虑 3 个案例。简单的情况是简单地上下一个一致的山丘,您想要获得正确的高度差值,这很容易用一张好的地图检查。在另一端沿着完全平坦的路线前进,您希望再次获得零爬升,这很好且易于检查,但使用典型硬件并不容易实现。在中间越过起伏的地形更难检查,尽管对用户来说可能是更有趣的情况。获得这种准确是对完全平坦的情况的某种形式的权衡。我在我的应用程序中有执行此操作的代码,并且通过过滤,我知道完全平坦的地方会在一个小时内爬升 20-30 米。对于每个起伏,起伏的情况下将计数约 1m。鉴于气压类型系统的已知限制,单个大山通常非常准确。仅基于 Gps 并没有那么好。对于基于 gps 的系统,通常返回在线查找方法更一致,但这取决于查找数据的质量和地形类型。

      【讨论】:

        猜你喜欢
        • 2022-10-14
        • 2015-03-17
        • 2011-03-15
        • 2021-04-17
        • 1970-01-01
        • 2011-03-03
        • 2012-03-07
        • 1970-01-01
        • 2013-01-05
        相关资源
        最近更新 更多