Android: как использовать SensorManager.getAltitude(float p0, float p)?

Я нашел альтернативный способ получить высоту с помощью 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 Я нашел URL поставщика веб-услуг (WSP) для получения файла p0 pressure at sea level. Я успешно получил значение, но не понимаю возвращаемые значения.

URL-адрес 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>

person eros    schedule 14.09.2011    source источник


Ответы (2)


пытаться

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);
person Michele    schedule 21.09.2011
comment
Понятно. Реализуйте прослушиватель, чтобы получить значение для датчика TYPE_PRESSURE. Как насчет значения давления на уровне моря? Любая подсказка о том, как его получить? - person eros; 22.09.2011
comment
да, это константа SensorManager.PRESSURE_STANDARD_ATMOSPHERE - person Michele; 22.09.2011
comment
Необходимо знать давление на уровне моря, обычно его можно получить из баз данных близлежащих аэропортов. Если неизвестно, вы можете использовать PRESSURE_STANDARD_ATMOSPHERE в качестве приблизительного значения, но абсолютные высоты не будут точными. ‹- это утверждение взято из документации Android. Хотелось бы иметь значение из баз данных аэропортов поблизости. У вас есть подсказки, как его получить? или URL-адрес поставщика веб-услуг, который можно использовать для его получения? - person eros; 22.09.2011
comment
Я нашел URL-адрес поставщика веб-служб. Вы бы проверили обновленный пост. - person eros; 22.09.2011

Текущее барометрическое давление воздуха на уровне моря (QNH) — это значение после «Q» в поле метар (в гПа — гектопаскалях). В данном случае 1000 гПа.

Более подробную информацию о TAF и METAR можно найти в Википедии.

http://en.wikipedia.org/wiki/METAR

http://en.wikipedia.org/wiki/Terminal_aerodrome_forecast

person Paul LeBeau    schedule 27.04.2012