gpt4 book ai didi

java - Android 气压计高度读数错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:43:38 32 4
gpt4 key购买 nike

我一直在尝试实现一项功能,以根据 Android Galaxy S5 手机的气压计传感器获得正确的高度。唯一的问题是,我认为它不准确。基于http://www.whatismyelevation.com在我的特定位置上,它显示我的高度约为 114 米。但是,在我的手机上,根据气压计传感器显示是 210 米。然而,我在一座高楼里,但我不认为它有 100 米高。

这是我的简单代码:

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.configure_settings);
context = getApplicationContext();

mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensors = mSensorManager.getSensorList(Sensor.TYPE_PRESSURE);

if (sensors.size() > 0)
{
sensor = sensors.get(0);
mSensorManager.registerListener(this, sensor,
SensorManager.SENSOR_DELAY_NORMAL);
}

}

@Override
public void onSensorChanged(SensorEvent event)
{
float pressure = event.values[0];
altitude = String.valueOf(SensorManager.getAltitude(
SensorManager.PRESSURE_STANDARD_ATMOSPHERE, pressure));

}

谢谢!

最佳答案

第一:气压计非常精确,但不准确。如果将 10 部 Android 手机并排放在 table 上,您会发现设备之间的气压差异高达 3 mb。这是错误的来源之一。

第二:不同的群体对“高度”的定义不同,因此请确保使用相同的定义。例如,在 Location 类中,getAltitude 定义为

Get the altitude if available, in meters above the WGS 84 reference ellipsoid.

http://developer.android.com/reference/android/location/Location.html#getAltitude()

第三,天气会对气压计的读数产生高达 40 mb 的影响。如果您想从气压计上获得更准确的高度读数,您将不得不根据当前天气进行偏移。大气可以每小时改变局部压力高达 1-2 毫巴(在极端情况下)

第四:目前还不可能使用智能手机中的气压计获得完全准确的高度读数。目前还没有人解决这个问题 - 例如,气压计本身不足以实现地面检测。

我是 PressureNet 的开发者,顺便说一下——我从智能手机上收集了超过 20 亿个压力读数,我每天都会看到所有这些类型的错误。

最后:如果您想获得“高度”值,气压计提供给您的读数在使用前需要进行重要的解释。默认情况下,从每个气压计读取的每个值都是“错误的”;您必须根据您的确切需求做特定的工作才能让它为您工作。

github.com/cbsoftware/pressurenet

关于java - Android 气压计高度读数错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541658/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com