我找到了另一种使用SensorManager获取高度的方法,但它需要两个参数。
public static float getAltitude (float p0, float p)
Computes the Altitude in meters from the atmospheric pressure and the pressure at sea level.
p0 pressure at sea level
p atmospheric pressure
您是否可以通过实际示例/代码段教我们如何使用它。
UPDATES1
我找到了Web服务提供商(WSP)网址来获取p0 pressure at sea level
。我已成功获取值但不理解返回的值。
WSP网址: http://avdata.geekpilot.net/
以下是东京国际机场的示例输出(http://avdata.geekpilot.net/weather/HND)
<weather>
<ident>RJTT</ident>
<error/>
<metar>
2011/09/22 08:00
RJTT 220800Z 04019KT 9999 -SHRA FEW012 BKN025 BKN040 21/18 Q1000 NOSIG
</metar>
<taf>
2011/09/22 04:12
TAF
AMD TAF
AMD RJTT 220409Z 2204/2306 08016KT 9999 FEW030 SCT050
BECMG 2204/2206 05014KT
TEMPO 2207/2209 36018G30KT SHRA
BECMG 2303/2306 10008KT
</taf>
</weather>
答案 0 :(得分:5)
试
List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_PRESSURE);
if(sensors.size() > 0) {
sensor = sensors.get(0);
mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
presure = event.values[0];
}
float altitude = getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, presure);
答案 1 :(得分:2)
目前的海平面气压(QNH)是在metar油田“Q”之后的值(以hPa - 百帕 - 帕斯卡为单位)。在这种情况下1000 hPa。
有关TAF和METAR的更多信息可以在维基百科上找到。