Wie funktioniert getAltitude() von Android-GPS-Ortung Funktioniert
HALLO
Habe ich versucht zu implementieren, ein einfaches GPS-tracker. Daher wird verwendet,
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this);
Dann habe ich die
public void onLocationChanged(Location location) {
Methode zum Lesen der Höhe der meine aktuelle Position.
Aber ich weiß wirklich nicht welche Lage.getAltitude() gibt. Das Dokument sagt, es gibt die Höhe an. Aber ist das in Metern? oder Füße? wenn ich das Telefon auf dem Schreibtisch neben mir, ändert sich dieser Wert zwischen 500 und -500??
Wie funktioniert das wirklich funktionieren???
- Noch, dies ist nicht etwas, am besten Links auf die übernahme (wir alle wissen, wo vorausgesetzt wird uns bei der Programmierung). Vor allem, seit das Land von der Sie sprechen ist, wo google ist mit Sitz. Können nur Zustimmen, dass die Dokumentation verbessert werden könnte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Höhe erhalten Sie in Meter von das gps (WGS84) Referenz-ellipsoid und nicht von der geoid.
Aus meiner eigenen Erfahrung das GPS wirklich schlecht sind bei der Höhe der Werte.
Las ich dies auf der GPS-Status FAQ:
alte post, ich rekon, aber könnte jemand noch interessiert sein.
beim hören von GPS, können Sie analysieren NMEA-GPGGA Satz (http://aprs.gids.nl/nmea/#gga), in denen es ist die geoid-Höhe (Höhe des geoid über WGS84-ellipsoid).
einfach abziehen dieser Länge von der getAltitude zurückgegebenen Wert, und Sie werden eine genauere Erhebung Wert.
Bearbeiten nach mehreren Monaten der Nutzung und feedback von Nutzern meiner app
Eine bessere Lösung ist, um direkt die Höhe in der GPGGA-Satz:
Ich gehe davon aus, dass Ihr Schreibtisch befindet sich in einem Gebäude.
Wenn Sie ein GPS-fix in einem Gebäude sollten Sie nicht erwarten, dass die Genauigkeit sehr hoch.
Haben versucht, immer die Genauigkeit der Korrektur durch den Aufruf getAccuracy()?
Gps einfach die Zeit misst, die ein bekanntes signal von mehreren Satelliten. Je mehr Satelliten in Sicht der Gps-Empfänger desto genauer wird deine position bestimmt, die im Verhältnis zu den Satelliten. Während das system ist anfällig für einige Fehler - Rauschen (das Sat-signal ist relativ schwach und der Raum ist relativ laut), low-Präzisions-Zeit-Stück in den receiver, GDOP: geometric dillution of precision (alle Satelliten gruppiert in einer Ecke des Himmels), Brechung des Signals durch die Ionosphäre wechselnden Höhen,- insgesamt ist Sie sehr genau in der Bestimmung Ihrer Entfernung von einem Satelliten. Geometrisch müssen Sie mindestens 3 Satelliten in Sicht zu bekommen, eine position und ein 4. zu bekommen Höhe. Mehr Satelliten ein Beitrag zu mehr Genauigkeit und in einigen komplexeren Receiver (nicht unsere Telefone, aber speziell die Luftfahrt-Anwendungen) RAIM: receiver autonomous integrity monitoring, ist die Prognose-Genauigkeit in einer Gegend und Zeit, D. H. bevor ein Flugzeug landet...
Höhe ist problematisch für das gps-system, da die Erde nicht der Kurve bei der mathematischen Konstante. So, während das system weiß, wo Sie in relation zu den Satelliten muß es jetzt overlay, das auf einem mathematischen Modell der Erde. In der Luftfahrt, der genauer Gps-Empfänger haben muss, die Höhe ergänzt, mit Barometer und in einigen Receivern verbesserte position aufgrund eines bekannten befragt-Punkt-Vergleich (WAAS und LAAS).
Diese auftreten, wo Sie mit den LocationManager.NETWORK_PROVIDER wie location-Anbieter, sicherzustellen, dass Sie verwenden LocationManager.GPS_PROVIDER wie Ihre Lieblings-Gps-Anbieter.