2016-06-22 22 views
6

C'è un'applicazione Android e iOS su cui sto lavorando. Entrambe le applicazioni utilizzano il controller PlaceAutocomplete di google per ottenere una posizione lat-long. In iOS otteniamo lat-up fino a 6 cifre decimali, a volte anche 5. Dove come in Android otteniamo più di 6 posizioni decimali. La precisione della stessa coordinata di posizione per Android e iOS è diversa.Google Map V2 Android e iOS posizionano posizioni decimali latlng

For example consider location Pune 
      Android Latlng: 18.520431,73.856744 
       iOS Latlng: 18.52043,73.856744 

Quindi, come potete vedere c'è differenza tra la precisione di latitudini nella stessa posizione.

C'è un modo per evitarlo poiché la mia applicazione richiede il confronto di questi lat-long?

risposta

8

Non si deve fare affidamento sulla precisione delle coordinate per confrontarle perché possono cambiare o, come si sperimenta, variano da una piattaforma all'altra.

Invece, è possibile impostare una tolleranza per determinare se due posizioni sono uguali. Per esempio:

float YOUR_TOLERANCE = 1; // 1 meter 
if (location.distanceTo(otherLocation) < YOUR_TOLERANCE) { 
    // Both locations are considered the same 
} 
3

in Android c'è anche tre tipi di posizione:

  1. GPS_PROVIDER
  2. NETWORK_PROVIDER
  3. PASSIVE_PROVIDER

Così, come per la mia esperienza di codifica vengo per sapere che se si utilizza:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new MyLocationListener()); 

otterrete lungo precisione dei decimali come più di 14+ e se pensate di utilizzare la fusione di loro con questo:

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

allora otterrete 6-7 cifre di precisione. Provalo !!!

Problemi correlati