2015-01-10 6 views
6

Ho provato Fused Location (GoogleApiClient) ed è stato inaccurato quando ho ottenuto una posizione, mi ha dato la mia posizione precedente anche quando richiedo una nuova (corrente), ho chiesto 10 richieste (in ordine per essere il più precisi possibile) ma dopo 4-6 volte ha semplicemente smesso di richiedere e quelli che ha ottenuto, erano molto imprecisi (881m di accuratezza).android - LocationManager vs FusedLocation

D'altra parte, quando si utilizza LocationManager, mi dava sempre la mia posizione più o meno, non si fermava mai nel mezzo senza motivo e in generale era molto più stabile.

Quindi in che modo la posizione con fusibile è migliore del responsabile della posizione?

risposta

1

Strano !!! Fused location dovrebbe essere più veloce e dovrebbe fornire una posizione più precisa.

  • assicurarsi che si sta richiedendo gli aggiornamenti di posizione

    LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);

    invece di ottenere ultima posizione conosciuta

    mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);

  • e si sta utilizzando LocationRequest.PRIORITY_HIGH_ACCURACY (GPS).

    differenza principale tra Fused Location e Location Manager è quest'ultimo non dipende Google Play Services

+0

Mi hai appena dato un altro motivo per usare LocationManager :) Ho fatto tutto quello che ha scritto, la posizione fuso è più veloce, non c'è dubbio che ma sto cercando l'accuratezza, non la velocità. Stavo vicino a una finestra (parzialmente in casa). Ho messo il debug in OnLocationChanged della location e del location manager fusi e il primo si è fermato quando si è verificato con una precisione di 881. Con il location manager, ha interrotto la richiesta solo quando l'ho detto (dopo 10 volte) e la precisione era 39m e la posizione era perfetta! – Amos

+0

'Fused Location' è più preciso ..... Ho usato entrambi e ho trovato' Fused Location' ottenere la posizione non appena avvii l'app, con 'Location Manager' ho dovuto aspettare per 2-5 minuti. 'Location Manager' è più facile però. Per lo meno, il codice di posizione Fused funzionerà. – j4rey89

+0

Mi sono fermato in un posto e ho chiesto la mia posizione. Era ok. Ho provato lo stesso mentre camminavo, la posizione era la stessa di prima. Ho pensato che non stavo camminando correttamente, quindi ho chiuso la mia app, ho camminato per 200 metri e l'ho riaperta per riprovare. La prima volta, mi ha dato la mia posizione precedente (200m), riprovando, mi ha dato la posizione corrente. – Amos