GPS - Genauigkeit erhöhen

D

Droidspirit

App-Anbieter (In-App)
50
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
 
TheEvilOne schrieb:
Ich habe mir überlegt, das man das vielleicht erreichen könnte, indem man mehrere Satelliten gleichzeitig anspricht. Ist sowas denn überhaupt möglich?

Ich weiß nicht wie du das meinst aber der GPS-Empfänger rechnet sich doch immer aus den Signalen mehrer Sateliten die Position zusammen. Mit nur einem Sateliten kann der GPS-Empfänger seine Position nicht ermitteln. Um so mehr Signale (unterschiedliche Satelitten) der GPS-Empfänger empfängt um so genauer kann er die Position errechen.
 
Ja genau, und wie kann man denn die Anzahl der Satelliten erhöhen, die er zur Bestimmung der Koordinaten verwendet?
 
Danke für die Info.

Was mir vorhin aufgefallen ist: Ich habe in den Permissions bisher nur den eigenen GPS-Standort freigegeben. Da es sich bei Android aber ja 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.

Aus AndroidPit bekam ich noch den Hinweis, dass man Werte mit zu hoher Ungenauigkeit ignorieren könnte. Das werde ich auch mal versuchen.

Die App habe ich schon auf meinem Androiden installiert. Mit der kann ich die Daten ja mal vergleichen.
 
Die Daten aus dem Internet machen die Positionsbestimmung aber nicht genauer sondern nur schneller. Normal muss der GPS-Empfänger die Position der Sateliten erst ermitteln und das dauert. Bei AGPS holt er sich die Positionen der Sateliten aus dem Internet.
 
Hallo,

TheEvilOne schrieb:
.... dass man Werte mit zu hoher Ungenauigkeit ignorieren könnte. Das werde ich auch mal versuchen...

... und wie willst Du wissen wann es ungenaue Werte sind?

Grüße Bobert
 
Hallo,

ich hatte jetzt mal die Werte, deren Genauigkeit 6m überschreiten, ignoriert. Aber das ist auch nicht das Wahre. Da soll lieber der Benutzer entscheiden, welche er verwendet.

Ich habe den LocationProvider nun mal anders initialisiert (jetzt mal abgesehen von der Tatsache, das GPS sowieso nur jede Sekunde aktualisiert und unter Mißachtung des Akkuverbrauchs):

Vorher nutzte ich:
Code:
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);

Jetzt verwende ich:
Code:
 Criteria c = new Criteria();
         c.setAccuracy(Criteria.ACCURACY_FINE);
         c.setAltitudeRequired(false);
         c.setBearingRequired(false);
         c.setSpeedRequired(false);
         c.setCostAllowed(true);
         c.setPowerRequirement(Criteria.POWER_HIGH);
 
LocationProvider high= locManager.getProvider(locManager.getBestProvider(c, true));
 
locManager.requestLocationUpdates(high.getName(), 0, 0, locListener);

Bei dem neuen Code kommt es mir so vor, als ob die Genauigkeit höher ist.

Viele Grüße
 

Ähnliche Themen

2
Antworten
6
Aufrufe
261
24559
2
H
Antworten
2
Aufrufe
930
swa00
swa00
W
  • washpuda
Antworten
10
Aufrufe
1.258
swa00
swa00
Zurück
Oben Unten