CLLocation elevation accuracy

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

Проблемы с этим кодом: часто verticalAccuracy никогда не опускается ниже 30, а когда опускается, это все равно даже близко не достаточно точно; я тестировал код, гуляя вокруг своего дома (одноэтажного), и он говорит, что высота меняется до девятнадцати футов, что, я уверен, неправда.

10
задан progrmr 29 November 2011 в 03:50
поделиться