1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

GPS - Genauigkeit erhöhen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von TheEvilOne, 27.01.2012.

  1. TheEvilOne, 27.01.2012 #1
    TheEvilOne

    TheEvilOne Threadstarter App-Anbieter (In-App)

    Beiträge:
    452
    Erhaltene Danke:
    50
    Registriert seit:
    19.05.2010
    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
     
  2. snowman2, 29.01.2012 #2
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    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.
     
  3. TheEvilOne, 29.01.2012 #3
    TheEvilOne

    TheEvilOne Threadstarter App-Anbieter (In-App)

    Beiträge:
    452
    Erhaltene Danke:
    50
    Registriert seit:
    19.05.2010
    Ja genau, und wie kann man denn die Anzahl der Satelliten erhöhen, die er zur Bestimmung der Koordinaten verwendet?
     
  4. snowman2, 29.01.2012 #4
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Zuletzt bearbeitet: 29.01.2012
  5. TheEvilOne, 30.01.2012 #5
    TheEvilOne

    TheEvilOne Threadstarter App-Anbieter (In-App)

    Beiträge:
    452
    Erhaltene Danke:
    50
    Registriert seit:
    19.05.2010
    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.
     
  6. snowman2, 30.01.2012 #6
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    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.
     
  7. Bobert, 31.01.2012 #7
    Bobert

    Bobert Erfahrener Benutzer

    Beiträge:
    161
    Erhaltene Danke:
    15
    Registriert seit:
    21.11.2010
    Phone:
    Nexus S
    Hallo,

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

    Grüße Bobert
     
  8. TheEvilOne, 01.02.2012 #8
    TheEvilOne

    TheEvilOne Threadstarter App-Anbieter (In-App)

    Beiträge:
    452
    Erhaltene Danke:
    50
    Registriert seit:
    19.05.2010
    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
     
  9. snowman2, 01.02.2012 #9
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Das teilt dir der GPS-Empfänger mit.

    Schau mal hier rein:
    Das NMEA-0183 Datenformat

    GPGSA - PDOP
     

Diese Seite empfehlen

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. gps genauigkeit erhöhen

    ,
  2. gps genauigkeit erhöhen android

    ,
  3. android gps hohe genauigkeit