Posiadam aplikację usługi lokalizacyjnej, w której jest zapewniona elewacja użytkownika. Zauważyłem jednak, że dokładność rzędnej dostarczona przez CLLocationManager jest wyjątkowo niedokładna. Kiedy testuję dwa razy te same dwa punkty, czasami różnica rzędna wynosi czterdzieści stóp, a czasami jest sto. Czy jest jakiś sposób, aby poprawić dokładność pionową CLLocation, czy też istnieje inny sposób zdobywania elewacji użytkownika (biblioteki innych firm)? Próbowałem już sprawdzić właściwość verticalAccuracy dla newLocation dostarczonej przez CLLocationManager i wyrzucić ją, jeśli nie jest wystarczająca, ale nawet jeśli jest wystarczająco "dokładna", nadal często nie jest prawdziwa. Dziękuję za Twój czas!Dokładność elewacji CLLocation
Teraz używam:
if([newLocation verticalAccuracy] < 30) {
if(isCustomary)
altitudeLabel.text = [NSString stringWithFormat:@"%.2f feet", ([newLocation altitude] * 3.2808399)];
else
altitudeLabel.text = [NSString stringWithFormat:@"%.2f meters", [newLocation altitude]];
}
problemów z tym kodem: często verticalAccuracy nigdy nie spadnie poniżej 30, a gdy to robi, że wciąż nie jest nawet blisko wystarczająco dokładne; Przetestowałem kod poruszający się po moim domu (jedna historia) i mówi, że elewacja zmienia się do dziewiętnastu stóp, co na pewno nie jest prawdą.
Tak, wydaje się to niefortunna prawda. +1 dla dobrego wyjaśnienia i dobrego linku. –