1

I want to be able to capture altitude in my Android app. I know I can use GPS for where I am, but is there any way I can derive roughly how high the phone is off the ground using a combination of sensors? If not, what is the closest estimation I can get?

Ryan Hayes
  • 5,290
  • 4
  • 42
  • 52
  • Answered pretty decently over here: http://stackoverflow.com/questions/1995998/android-get-altitude-by-longitude-and-latitude – Mels Jan 05 '12 at 21:04
  • I'm asking as if I were in a helicopter, not on land. Though, that explains half the problem. – Ryan Hayes Jan 05 '12 at 21:18
  • Ah. In that case you really do need the 3D fix Z-axis from the GPS chip. I've seen that work on the iPhone, although it's never really accurate. It often reports my current height as some 300m above sea level while I live in the Netherlands at about 3m below sea level. Don't know about Android, maybe the SDK just discards any available alt info b/c it's too inaccurate anyway... – Mels Jan 17 '12 at 11:51
  • @Mels Thank you! I didn't know GPS chips had Z-axis available, even if they are that horrible at finding your location. :-/ – Ryan Hayes Jan 17 '12 at 16:35

1 Answers1

2

If the phone has a barometric pressure sensor, you can use SensorManager.getAltitude to get the altitude based on a pressure reading. This method also requires the current pressure at sea level, which can either be obtained from local airport data (via a web service) or approximated with SensorManager.PRESSURE_STANDARD_ATMOSPHERE.

For more, see:

Android: How to use SensorManager.getAltitude(float p0, float p)?

Community
  • 1
  • 1
elijah
  • 2,904
  • 1
  • 17
  • 21