У меня есть приложение службы определения местоположения, в котором указана высота пользователя.Однако я обнаружил, что точность высот, обеспечиваемая CLLocationManager, чрезвычайно неточна.Когда я дважды тестирую одни и те же пятна, иногда перепад высот составляет сорок футов, а иногда - сто.Можно ли как-то улучшить точность CLLocation по вертикали, или есть другой способ получения прав пользователя (сторонние библиотеки)?Я уже пытался проверить свойство verticalAccuracy объекта newLocation, предоставляемого CLLocationManager, и выбросить его, если этого недостаточно, но даже когда оно достаточно «точное», оно все еще часто не совсем точно.Спасибо за ваше время!
Прямо сейчас я использую:
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]];
}
Проблемы с этим кодом: часто точность вертикали никогда не опускается ниже 30, а когда это происходит, это все еще даже неблизко к достаточно точным;Я проверил код, прогуливающийся по моему дому (одна история), и он говорит, что высота меняется до девятнадцати футов, что, я уверен, не соответствует действительности.