Czy ktoś już to przybił? Przeczytałem wiele wpisów na forum i nadal nie mogę stwierdzić, czy jest to rozstrzygnięte pytanie ...Ostateczny algorytm określania najdokładniejszego zwrotu z iPhone CoreLocation?
Biorąc pod uwagę, że metoda didUddateToLocation() może zwracać buforowane lub niedokładne informacje, w jaki sposób można stwierdzić, kiedy są dokładne naprawić?
Po ustawieniu żądanej dokładności na kCLLocationAccuracyNearestTenMeters, HundredMeters, Kilometer, ThreeKilometers, wydaje się oczywiste, że można porównać poziomą dokładność zwracanych punktów z pożądaną dokładnością, aby zdecydować, kiedy zaakceptować punkt.
Ale wartości kCLLocationAccuracyBestForNavigation i kCLLocationAccuracyBest są odpowiednio -2 i -1, więc skąd mam wiedzieć, kiedy mam pożądaną dokładność?
Obecnie sprawdzam wiek poprawki i odrzucam wszelkie poprawki, które są zbyt "stare" w czasie. Następnie sprawdzam, czy dokładność pozioma jest ujemna, i odrzuć ją, jeśli tak jest. Jeśli otrzymam dodatnią wartość dokładności pionowej, to zazwyczaj używam tej poprawki, ponieważ odpowiednia dokładność pozioma jest również dobra.
Ale kontrole te były stosowane, kiedy nie patrząc pod kątem dokładności w 10-100s metrów ... nie wiem co, jeśli coś by sprawdzić kiedy biegnę ... AccuracyBestForNavigation lub ... AccuracyBest ?? Czy mam założyć, że menedżer locationManager stale działa i nigdy nie spodziewam się go wyłączyć i nie filtrować żadnych wyników?
Ktoś mądrzejszy niż ja z odpowiedzią?
Dzięki
ok to mniej więcej to, co wymyśliłem. Nie mam tego zapakowanego w klasę, ale wygląda na to, że obejmowałem wszystko, co zaimplementowałeś. Dzięki za odpowiedź. – morgman
@morgman można go głosować następnie;) – fspirit