Ios 通过计算海拔上升的总英尺数得出奇怪的结果
我正在计算用户行走时爬过的总英尺数。我正在使用下面的核心位置委托方法 我将oldelevation、newelevation和Totalelevation声明为int 第一次将当前高程点转换为旧高程点Ios 通过计算海拔上升的总英尺数得出奇怪的结果,ios,iphone,core-location,elevation,Ios,Iphone,Core Location,Elevation,我正在计算用户行走时爬过的总英尺数。我正在使用下面的核心位置委托方法 我将oldelevation、newelevation和Totalelevation声明为int 第一次将当前高程点转换为旧高程点 - (void)locationUpdate:(CLLocation *)location { newelevation =[location altitude]; // Present Elevation if (newelevation > oldelevation) {
- (void)locationUpdate:(CLLocation *)location
{
newelevation =[location altitude]; // Present Elevation
if (newelevation > oldelevation) {
TotalElevation = TotalElevation + newelevation - oldelevation;
}
oldelevation=newelevation;// Storing current elevation in old elevation.
}
最后,在步行结束时,我将Totalelevation乘以3.28084,得到了攀登的总英尺数
我正在将我的结果与Runtastic应用程序进行比较
我走了0.40英里,Runtastic的高度是16英尺,我的应用程序总爬了208英尺
我参考了以下链接,但这些链接没有给出准确的结果
在进行计算之前,应始终评估高度精度。如果高度无效,则属性verticalAccuracy返回负值
if (currentLocation.verticalAccuracy >= 0 && previewsLocation.verticalAccuracy >=0) {
if (currentLocation.altitude > previewsLocation.altitude) {
TotalElevation = TotalElevation + currentLocation.altitude - previewsLocation.altitude;
}
}
你是在计算步行过程中爬上的总英尺数,还是从步行开始到结束的海拔增量?@Carlvaezey爬上的总英尺数和海拔增量有什么区别吗?你能帮我一下吗?如果你爬上一百英尺的山,然后再下来,你已经爬了100英尺,海拔上升了0英尺,对吗?@Carlvaezey是的,你是对的。我编辑了我的问题“我想要爬过的总英尺数”。我使用了上述条件,但没有效果。我得到了非常高的爬升英尺值。记住将oldelevation初始化为DBL_MAX。因此第一个位置是IgnoreDiges。我正在将当前高程点添加到旧高程点,因此将忽略第一个位置。