0

I am creating a basic Hiker's Watch app that provides the user his/her location info like (longitude, latitude, altitude, etc).

However, the altitude displayed in the logs is always 0.0 (in spite of assigning some non zero value for altitude in the Extended Controls).

According to,

locationProvider.supportsAltitude()
location.hasAltitude()

the device supports altitude but no location has any altitude.

Even Mount Everest (according to co-ordinates) "does not have" altitude.

I am getting other location details like Latitude, Longitude.

What can I do?

Tamara Koliada
  • 1,200
  • 2
  • 14
  • 31

1 Answers1

0

GPS altitude can have much error rates for cheaper devices.

You can also alternatively try the SensorManager to approximate altitude using the pressure sensors which could have some inaccuracies.

SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE,pressure)

Something like this:

public class MainActivity extends AppCompatActivity {

  private SensorManager sensorManager;
  private Sensor pressureSensor;
  private SensorEventListener sensorEventListener = new SensorEventListener() {

    @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
      float[] values = sensorEvent.values;
      flat altitude = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, values[0]);

    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int i) {
    }
  };

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    pressureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
  }

  @Override
  protected void onResume() {
    super.onResume();
    sensorManager.registerListener(sensorEventListener, pressureSensor, SensorManager.SENSOR_DELAY_UI);
  }

  @Override
  protected void onPause() {
    super.onPause();
    sensorManager.unregisterListener(sensorEventListener);
  }
}

Source: Android Docs

Arnab Saha
  • 511
  • 6
  • 15
  • Thanks, but I'm not really interested in using pressure sensors. Does Google Maps not provide altitude data anymore? – Hitesh Godse Feb 13 '19 at 14:11