Estoy probando una aplicación de Android que registra la ubicación (lat/long/alt). Estoy corriendo la aplicación en un teléfono Samsung con Android 2.2.1 GTS5830¿La altitud del GPS de Android es incorrecta debido a que no incluye la altura del geoide?
he leído aquí y allá que la altitud del GPS es a menudo incorrecto debido a que la tierra no es perfectamente esférica. En mi ubicación, por ejemplo, the geoid's height es de 52 metros.
Mi entendimiento es que esta altura se sustrajo desde una altitud de GPS "pura". Esto tendría sentido para mi ubicación como:
- altitude from GPS phone: 535 m
- geoid altitude: 52 m
- altitude from phone's GPS minus geoid height: 482m
- correct atlitude: 478 m
482 es lo suficientemente cerca de la cosa real para mí para hacer un seguimiento de elevación durante las travesías
- es la fórmula más arriba de la altura del GPS, menos la altura del geoide correcta ?
- ¿Estoy en lo cierto al suponer que Android no está teniendo en cuenta la altura del geoide al devolver la altitud del GPS?
- Si lo anterior es cierto, ¿es válido para todas las versiones de Android?
Este es el código que utilizo para obtener las coordenadas GPS:
public class HelloAndroid extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("main", "onCreate");
setupGps();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
LocationListener locationListener;
LocationManager lm;
void setupGps() {
Log.d("gps", "Setting up GPS...");
locationListener = new MyLocationListener();
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 20000, 5,
locationListener);
Log.d("gps",
"GPS supports altitude: "
+ lm.getProvider(LocationManager.GPS_PROVIDER)
.supportsAltitude());
Log.d("gps", "Finished setting up GPS.");
}
static class MyLocationListener implements LocationListener {
public void onLocationChanged(Location location) {
Log.d("gps", "long: " + location.getLongitude() + ", lat: "
+ location.getLatitude() + ", alt: "
+ location.getAltitude());
}
}
}
Además, las respuestas a las tres preguntas son sí. – davtom
ponga ese comentario en su respuesta y marcaré esto como la respuesta aceptada. –
Lo he hecho, gracias. – davtom