我有一个位置服务应用程序,其中提供了用户的海拔高度。不过,我发现 CLLocationManager 提供的高程精度非常不准确。当我两次测试相同的两个点时,有时海拔差是四十英尺,有时是一百英尺。有什么方法可以提高 CLLocation 的垂直精度,还是有不同的方法来获取用户的高程(第三方库)?我已经尝试检查 CLLocationManager 提供的 newLocation 的verticalAccuracy 属性,如果它不够,则将其丢弃,但即使它足够“准确”,它仍然通常实际上并不准确。谢谢你的时间!
现在我正在使用:
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,当它低于 30 时,仍然不够准确;我已经测试了在我家(一层)周围走动的代码,它说海拔变化高达 19 英尺,我敢肯定这不是真的。