如何在Android中获得气压高度?

2022-01-14 00:00:00 geo geolocation android java altitude

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

What are the data needed for calculating barometric altitude? How do I get them and then calculate the altitude?

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

Also how accurate is the barometric compared to GPS altitude? I tried GPS but after searching hours in the web I cannot find a suitable Geoid library.

如果我有任何概念,请纠正我.

Please correct me if I got any concept long.

推荐答案

你需要使用压力传感器 测量压力然后使用 SensorManager.getAltitude(float, float) 调用以将测量压力与参考海平面压力一起转换以获得高度.

You need to use the pressure sensor to measure the pressure then use the SensorManager.getAltitude(float, float) call to convert the measures pressure along with a reference sea level pressure to get the altitude.

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

The tricky bit is what to use as the reference pressure. This will change with the weather and will drift over time. Typically you would do some sort of calibration to set this values and possibly update it. It depends on your use case what the right solution is.

如果正确校准的基于压力的高度比基于 gps 的高度要准确得多,尤其是如果您希望对高度差异而不是绝对高度感兴趣.通过对原始压力传感器值进行一些过滤,您可以轻松地检测到您将手机保持在面部水平或头顶手臂长度,这是您想要使用 gps 执行的操作.

If properly calibrated pressure based altitude is considerably more accurate then gps based altitude especially if want you are interested in is altitude differences rather than absolute altitudes. With a bit of filtering on the raw pressure sensor values you can easily detect holding the phone at face level or arms length above your head which you want do with gps.

相关文章