我们正在react-native中开发一个多平台(android和ios)应用程序,该应用程序主要处理地理位置数据,因此它主要取决于数据的准确性和精度。例如,应用程序每5秒钟(即10分钟)累积(读取并保存)用户的地理位置数据(称为跟踪)。因此,在跟踪过程中,大约保存了200个测量值。稍后,我们将根据跟踪过程中积累的数据执行不同的计算,并将结果可视化。
在iphone上,以几乎相同的高度物理(几乎)高度测量的数据的高度图具有相当的线性/平滑特征,而在android上,则倾向于有+ -5米的峰值。假设我们要测量轨道上升高的总米,从而计算后续测量之间的差异之和。现在想象一下,上述不精确度对结果有多大影响-每5秒可能会有5米的高度变化。尽管从物理上讲您的总海拔是+ -0米,但计算出的总海拔可能会大不相同。
因此,为消除错误,对于我们来说,基本上有两种方法:
第一种方法听起来要好得多,但我们知道特定设备的硬件限制-我们根本无法使用我们的软件修复不正确的硬件。问题是,即使在同一设备上,其他商业应用程序(即Runtastic)也可以“更好地”执行测量(甚至离线)。那让我考虑第二种(近似)方法。这种方式很容易破解,尽管在很多情况下可以带来漂亮的结果,但我们认为(但无法证明)没有这样的预言近似,它永远也不会“破坏”太多数据。
因此,我们的问题是:
谢谢!
答案 0 :(得分:0)
GPS高度是最好的。但这取决于gps芯片。有一些具有较高的准确性(高成本)。大多数手机GPS也在网上使用以获取数据(为了获得良好的热启动)
要平滑GPS数据(或其他任何数据),可以使用卡尔曼滤波器。它复杂而沉重。它可以保证结果并很好地避免误导数据。
或
您可以忽略基于以前的数据包的误导性数据包(均值过滤器)-简单,但应进行珍贵的编码
注意:我没有使用气压计。我没有给出答案。祝你好运
答案 1 :(得分:0)
如果您有气压计,那么它的高度精度可能比手机质量gps更好。这就是为什么高端自行车计算机和GPS追踪手表中都装有气压计的原因。如果您对相对海拔差异而不是实际实际海拔高度感兴趣,则尤其如此。要使用气压计获得良好的实际海拔,您需要一些明智的校准方案,并注意天气随时间的影响。
无论您以何种高度的数据来源,都应该对数据进行某种形式的后处理,以获取明智的信息。处理将取决于您的情况和您认为重要的内容。
要获得一条轨道的总爬升量,您需要考虑3种情况。简单的情况是,在一个一致的山丘上向上或向下移动很简单,您想要获得正确的高度差值,并且可以通过一张好的地图轻松地进行检查。在另一端,沿着完全平坦的路线,您想要再次零爬升,既容易又容易检查,但使用典型硬件却不那么容易。在中间,起伏的地形很难检查,尽管对于用户而言可能更有趣。获得这种精确度是某种与完全平坦的情况之间的权衡取舍。我在我的应用程序中有执行此操作的代码,通过过滤,我知道整个平面将在一个小时内超过20-30m的上升时间。每次起伏,起伏的情况将少于1m。考虑到气压式系统的已知局限性,单个大山丘通常相当准确。仅基于Gps的效果不佳。通常,对于基于gps的系统,返回在线查找方法更为一致,但这取决于查找数据的质量和地形的类型。