Tak więc mam do czynienia z pewnymi problemami z dokładnością w przypadku iPhone'a GPS. Mam aplikację, która korzysta z lokalizacji.CLLocationManager i problemy z dokładnością - jakiekolwiek doświadczenia?
W metodzie delegata locationManager: didUpdateToLocation: fromLocation:
otrzymuję informację o lokalizacji. Z badań wynika, że GPS nie zawsze jest dokładny przy pierwszym wyniku, który powraca, nawet po ustawieniu właściwości desiredAccuracy
na kCLLocationAccuracyBest
.
Aby obejść ten problem, nie wzywam numeru stopUpdatingLocation
, zanim zostanie on zwrócony newLocation:
co najmniej 3 razy (jest to bardzo szybkie). Grałem też z dwoma innymi "wymaganiami", czy do stopUpdatingLocation
i zwróciłem newLocation
. Jednym ze sposobów, w jaki próbowałem, było sprawdzenie czasu i długości dla newLocation
i porównanie z oldLocation
, a jeśli nie były identyczne, to utrzymywanie aktualizacji lokalizacji działa. Próbowałem też sprawdzić odległość między oldLocation
i newLocation
, a jeśli jest mniejsza niż 20 metrów, to jest w porządku. Oba są testowane po powrocie co najmniej 3 przebiegów. Ten drugi sposób jest mniej "ścisły", ponieważ trudno jest uzyskać newLocation
i oldLocation
będąc w 100% identycznym, jeśli użytkownik znajduje się w poruszającym się pojeździe.
Mój problem polega na tym, że nawet podczas wykonywania powyższych czynności (zasadniczo nie akceptuję lokalizacji, dopóki kilka aktualizacji nie wystąpiło na CLLocationManager
I sprawdzanie odległości między CLLocations
(lub czy są one identyczne) wciąż widzę coś dziwne wyniki dla lokalizacji czasami, podczas testowania.
Będzie to naprawiać czasami, gdy opuszczę aplikację, przejdź do Maps.app, użyj GPS, a następnie otwórz wielozadaniowość, wymuś zamknięcie aplikacji, a następnie ponownie otwórz, aby uzyskać czyste Uruchomienie:
Wszelkie doświadczenia i możliwe rozwiązania, które ludzie wykorzystali do obejścia tego samego rodzaju zagadnień Komentarze i rozwiązania doceniane :)
Ah , doskonały! Powinienem przyjrzeć się bliżej właściwościom zwróconej nowej lokacji CLLocation, nie zdawałem sobie sprawy, że ma ona również timeStamp. Prawdopodobnie użyję tego razem z moim własnym kodem. Wielkie dzięki! – runmad
na przykładzie Apple "Zlokalizuj mnie": https://developer.apple.com/library/ios/#samplecode/LocateMe/Listings/Classes_TrackLocationViewController_m.html#//apple_ref/doc/uid/DTS40007801-Classes_TrackLocationViewController_m-DontLinkElementID_14 – Garoal
this jest dokładnie tym, czego szukam. Dziękuję Ci. – bselvan