HI
Ich habe versucht, einen einfachen GPS-Tracker zu implementieren. Daher wird
verwendet %Vor%Dann habe ich das
benutzt %Vor%Methode, um die Höhe meines aktuellen Standortes zu lesen.
Aber ich weiß nicht wirklich, was Location.getAltitude () zurückgibt. Das Dokument sagt, dass es die Höhe zurückgibt. Aber ist das in Metern? oder Füße? Wenn ich das Telefon neben mich auf den Tisch bringe, ändert sich dieser Wert zwischen 500 und -500 ??
Wie funktioniert das wirklich?
Der Höhenwert, den Sie erhalten, ist in Metern von dem GPS (WGS84) Referenzellipsoid und nicht aus dem Geoid .
>Aus eigener Erfahrung ist das GPS bei Höhenwerten wirklich schlecht.
Ich habe das auf der GPS-Status FAQ gelesen:
GPS meldet nicht die Höhe über dem mittleren Meeresspiegel, sondern das GPS-System vergleicht die Höhe mit dem Referenzellipsoid WGS84, das über oder unter dem tatsächlichen Meeresspiegel liegen kann. In verschiedenen Teilen der Erde kann es um mehr als 200 Meter abweichen (abhängig von der Massenverteilung der Erde). Zum Beispiel liegt die Geoidoberfläche um Florida über dem mittleren Meeresspiegel um gut 30-40 Meter, was bedeutet, dass das Stehen an der Küste -30m als Höhe anzeigen würde. Dies ist normal und kein Fehler und wird dadurch verursacht, dass die Höhe relativ zu einer künstlichen Referenzfläche und nicht zum Meeresspiegel ist. Wenn Sie sich für dieses Thema interessieren, empfehle ich, Mean Sea Level, GPS und das Geoid .
alter Post, ich Rekon, aber jemand könnte noch interessiert sein. Während Sie GPS hören, können Sie den NMEA GPGGA-Satz analysieren ( Ссылка ), in dem die Geoidhöhe (Höhe von Geoid über WGS84 Ellipsoid). subtrahieren Sie diese Höhe vom Rückgabewert getAltitude, und Sie erhalten einen genaueren Höhenwert.
Bearbeitung nach mehreren Monaten der Nutzung und Rückmeldungen von Nutzern meiner App
Eine bessere Lösung ist es, direkt den Höhenwert im GPGGA-Satz zu erhalten:
%Vor%Ich nehme an, dass sich Ihr Schreibtisch in einem Gebäude befindet. Wenn Sie ein GPS-Fix in einem Gebäude erhalten, sollten Sie nicht erwarten, dass die Genauigkeit sehr hoch ist. Haben Sie versucht, die Genauigkeit der Korrektur durch den Aufruf von getAccuracy () zu bekommen?
GPS misst einfach die Zeit, die ein bekanntes Signal von mehreren Satelliten gesendet wird. Je mehr Satelliten in Sichtweite Ihres GPS-Empfängers, desto genauer wird Ihre Position im Verhältnis zu diesen Satelliten bestimmt. Während das System anfällig für einige Fehler ist - Hintergrundrauschen (das Satellitensignal ist relativ schwach und der Raum ist relativ laut), niedrige Präzision Zeitstück in Ihrem Empfänger, GDOP: geometrische Auflösung der Präzision (alle Satelliten in einer Ecke des Himmels gruppiert), Brechung des Signals aufgrund der Ionosphäre, die Höhen ändert, - insgesamt ist es sehr genau bei der Bestimmung Ihrer Entfernung von einem Satelliten. Geometrisch benötigt man mindestens 3 Satelliten, um eine Position zu erhalten, und einen vierten um die Höhe zu erhalten. Mehr Satelliten tragen zu größerer Genauigkeit bei und in einigen komplexeren Empfängern (nicht in unseren Telefonen, sondern speziell in Luftfahrtanwendungen) RAIM: Empfängerautonomes Integritätsmonitoring zur Vorhersage der Genauigkeit in einem Gebiet und in der Zeit, dh bevor ein Flugzeug landet ...
Die Höhe ist für das GPS-System problematisch, weil die Erde nicht mit einer mathematischen Konstante krümmt. Während also das System weiß, wo Sie sich relativ zum Satelliten befinden, muss es das jetzt auf einem mathematischen Modell der Erde überlagern. In der Luftfahrt müssen die präziseren Gps-Empfänger eine Höhe aufweisen, die durch Barometer und in einigen Empfängern durch einen bekannten gemeldeten Punktvergleich (WAAS und LAAS) in einer verbesserten Position ergänzt wird.
Tags und Links android gps locationmanager wgs84