GPS - Genauigkeit erhöhen

  • Antworten:3
TheEvilOne
  • Forum-Beiträge: 311

27.01.2012, 23:49:25 via Website

Hallo,

ich schreibe gerade eine App, in der man GPS-Koordinaten nutzt. Der Wert der Genauigkeit (also getAccuracy()) spiel hierbei eine tragende Rolle.

Standardmäßig habe ich eingestellt, dass die App ihre Positionsdaten alle 2 Sekunden bzw. nach 2 Metern aktualisiert. Bei einem "Boost" sind diese Werte auf 0,0 gesetzt, so werden also permanent neue Daten angefordert.

Mein Problem ist nun, das die Genauigkeit manchmal 7 Meter, im nächsten Moment 15 Meter, dann 28 Meter und auch mal 50 Meter beträgt.

Kann man es irgendwie erreichen, dass die Genauigkeit nur bis 3 Meter Abweichung beträgt?

Ich habe mir überlegt, das man das vielleicht erreichen könnte, indem man mehrere Satelliten gleichzeitig anspricht. Ist sowas denn überhaupt möglich?

Wenn jemand eine Idee oder Tipps hat wäre ich wirklich dankbar.

Viele Grüße

Antworten
Gian U.
  • Forum-Beiträge: 117

28.01.2012, 22:31:48 via Website

Ich weiss zwar nicht, wie das in Android zu implementieren ist, aber die sehr genauen GPS-Geräte sprechen sehr viele verschiedene Satelliten an. Je mehr, desto höhen die Genauigkeit. Such doch mal im Netz danach, ob man die Mindestanzahl an Satelliten irgendwie bestimmen kann.

BTW: Man muss immer mindestens drei Satelliten ansprechen, um den Ort zu bestimmen.

Mnemono - Efficient learning!

Antworten
Gelöschter Account
  • Forum-Beiträge: 53

28.01.2012, 23:58:56 via Website

GPS benötigt normalerweise 4 Satelliten, um einen stabilen 3D-Fix zu bekommen, bie mehr steigt die Genauigkeit (d.h. die Zahl wird kleiner).
Mit 3 Satelliten bekommt man nur einen 2D-Fix, das lehnen aber viele Chipsets ab, weil sie nicht wirklich sicher sein können, auf welcher Seite des Planeten man ist.
Androids haben fast alle A-GPS, d.h. sie benutzen auch andere Info für die Position, daher ist das da möglicherweise anders.
Anyways, die Position und Genauigkeit hängt vom Chipsatz und seiner Firmware ab und ist nicht durch Software beeinflussbar, zumindest hoffe ich das.
Einzige Möglichkeit wäre also, Werte mit zu hoher Ungenauigkeit einfach zu ignorieren.
Auch bringt es nix, öfter als 1x pro Sekunde eine neue Position zu bekommen, weil GPS nunmal auf Sekundentakt ausgelegt ist. Die häufigere Übertragung (wenn der Chipsatz sie überhaupt anbietet) ist extrapoliert.

Wenn es wirklich so schlimm ist, das jedes Telegramm so schlimme Abweichungen angibt, ist entweder:
- der Empfang schlecht
- das GPS kaputt
- das Gerät Krempel

Aktuell gibt es wohl Probleme mit Sonnensturm, meine nicht-Sirfstar-GPS wackeln auch stark, komischerweise stimmen die SirfStarIII recht gut mit der Sollposition.
Ich weiß, warum das der Marktführer ist, und ich frage mich, warum ein 500-€-Android mit AGPS ausgestattet wird, wo ein SirfStar nur 5$ kostet und auch noch viel bessere Funktionen liefert, z.B. Static Navigation.

— geändert am 28.01.2012, 23:59:35

Antworten
TheEvilOne
  • Forum-Beiträge: 311

30.01.2012, 07:49:58 via Website

Danke für die Infos.

Was mir vorhin aufgefallen ist: Ich habe in den Permissions bisher nur den eigenen GPS-Standort freigegeben. Aber da es sich ja, wie Du schon sagtest, um AGPS handelt, werden ja auch Informationen aus dem Internet zur Positionsbestimmung herangezogen. Mal schauen, ob ich da einen Unterschied merke, wenn ich das Internet noch mit freigebe bzw. ich kann die Funktion ja noch einbauen, das die AGPS-Daten aus dem Internet aktualisiert werden.

Das mit dem Ignorieren von Werten mit zu hoher Ungenauigkeit ist auch ein guter Ansatz, das werde ich mal versuchen.

Mein Versuch, noch mehr Satelliten für die Positionsbestimmung anzusprechen war wohl nix. Habe erfahren, das Android immer so viele Satelliten verwendet, wie er finden kann =)

Antworten