Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中获取气压高度?_Java_Android_Geolocation_Geo_Altitude - Fatal编程技术网

Java 如何在Android中获取气压高度?

Java 如何在Android中获取气压高度?,java,android,geolocation,geo,altitude,Java,Android,Geolocation,Geo,Altitude,计算气压高度需要什么数据?我如何得到它们,然后计算高度 与GPS高度相比,气压计的准确度如何?我尝试了GPS,但在网上搜索了几个小时后,我找不到合适的大地水准面库 如果我的概念很长,请纠正我。您需要使用测量压力,然后使用调用将测量压力与参考海平面压力一起转换以获得高度 棘手的一点是如何使用作为参考压力。这将随天气而变化,并随时间推移而漂移。通常,您会进行某种校准来设置此值,并可能对其进行更新。这取决于您的用例,正确的解决方案是什么 如果正确校准的基于压力的高度比基于gps的高度准确得多,尤其是如

计算气压高度需要什么数据?我如何得到它们,然后计算高度

与GPS高度相比,气压计的准确度如何?我尝试了GPS,但在网上搜索了几个小时后,我找不到合适的大地水准面库

如果我的概念很长,请纠正我。

您需要使用测量压力,然后使用调用将测量压力与参考海平面压力一起转换以获得高度

棘手的一点是如何使用作为参考压力。这将随天气而变化,并随时间推移而漂移。通常,您会进行某种校准来设置此值,并可能对其进行更新。这取决于您的用例,正确的解决方案是什么


如果正确校准的基于压力的高度比基于gps的高度准确得多,尤其是如果您对高度差而不是绝对高度感兴趣的话。通过对原始压力传感器值进行一些过滤,您可以很容易地检测到将手机保持在面部水平或头顶上方的手臂长度,而这正是您希望使用gps所做的。

参数包括:gps海拔高度(最好使用从测量阵列计算的平均值)和大气压力。方法返回海平面上的压力(公式相反)


我使用默认值:直到GPS收集10个锁。之后,调用上述方法。

我使用SensorManager.PRESSURE\u STANDARD\u ATMOSPHERE作为参考,我的海拔高度为-50,这并不奇怪。大气压力有一个+-5%的范围,随着天气的变化,它会变成一个好的高度。正如我所说,校准它是困难的,这取决于你的用例,什么可能是合理的。这有点有趣,因为我把一个注释10+放在注释4旁边,运行相同的代码,读数上有一个差异,会产生20米的差异,这真的把我的整个用例从windowSo中吹了出来,这意味着你需要一个校准策略,而不仅仅是依赖一个给定位置的静态值。经典的方法是知道给定点的正确高度,然后用它计算出标准大气压力的压力。你的两部手机最终会有不同的值,但一旦校准后,你会希望它们能一起很好地跟踪。是的,刚刚开始考虑这一点,感谢您的帮助
public static float getSealevelPressure (float alt, float p)
{
    float p0 = (float) (p / Math.pow(1 - (alt/44330.0f), 5.255f));
    return p0;
}