Istnieje kilka criteia celu określenia dokładności lokalizacji
Gdy urządzenie rozpoczyna świadczenie lokalizacji w czasie rzeczywistym, moja propozycja jest taka, aby sprawdzić dokładność każdego wyniku i rozważyć odrzucenie tych większa niż określonej kwoty, które są w oparciu o Twoje wymagania. Im dłużej działa dostawca lokalizacji, a urządzenie ma niezakłócony widok nieba i dobre połączenie komórkowe, zazwyczaj dokładność poprawi się do pewnego punktu, a następnie ustabilizuje się, a następnie ulegnie wahaniom. Oto fragment pseudo-kod pokazujący jak sprawdzić dokładność każdego wyniku lokalizacji GPS:
1
2
3
Oto niektóre przykłady szorstkie progi dokładności. Twoje wymagania mogą się różnić w zależności od tego, w jaki sposób te różne progi wpłyną na zachowanie aplikacji; były to przykłady, które wymagały geokodowania, które przekonwertowały bieżącą lokalizację na przybliżony adres. W zależności od wyniku aplikacja przekazała użytkownikowi inną informację zwrotną:
Rooftop <= 10 meters (desired result)
Street >10 meters and <= 100 meters (let user know it’s close but not perfect. Good enough?)
Neighborhood > 100 meters and <= 500 meters (give visual feedback that accuracy is low)
City > 500 meters and <= 2000 meters (ask user to verify city name from a list)
County > 2000 meters (prompt for manual location input)
Weź pod uwagę własne unikalne przypadki użycia. Możesz całkowicie odrzucić dowolną wartość dokładności większą niż 100 metrów (328 stóp), jeśli twoja aplikacja po prostu pomaga ludziom znaleźć otwarte parkingi w grach NFL. Możesz mieć aplikację, która zwraca listę gabinetów dentystycznych w promieniu 5 mil (8000 m). Lub aplikacja pogodowa może tylko wiedzieć, w jakim mieście jesteś. To tylko pomysły, które pomogą Ci myśleć.
public void onLocationChanged(Location location) {
if(location.getAccuracy() < 100.0 && location.getSpeed() < 6.95){
//Do something
}
else{
//Continue listening for a more accurate location
}
Dzięki! Niestety wygląda na to, że dokumentacja systemu Android jest nieco słabsza. Link do kodu źródłowego jest pomocny! – robguinness
Nie prosić o zbyt wiele, ale jeśli odpowiedź ci pomogła, możesz to zaakceptować! – npace
Lubię dawać pytania dzień lub dwa przed zaakceptowaniem odpowiedzi. Zrobiłem to jednak! – robguinness