0

我正在计算用户行走时攀爬的总英尺数。我正在使用以下核心位置委托方法。

我将 oldelevation、newelevation 和 Totalelevation 声明为 int。

我第一次将当前点高程带到旧高程。

- (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 英尺。

我参考了以下链接,但这些链接并没有给出准确的结果。

计算累积海拔增益给了我奇怪的结果

如何在 runkeeper 应用程序中计算高程

iPhone核心位置:计算总高程损失/增益

4

1 回答 1

1

在进行计算之前,您应该始终评估高度精度。如果高度无效,则属性 verticalAccuracy 返回负数

if (currentLocation.verticalAccuracy >= 0 && previewsLocation.verticalAccuracy >=0) {
   if (currentLocation.altitude > previewsLocation.altitude) {
      TotalElevation = TotalElevation + currentLocation.altitude - previewsLocation.altitude;
   }
}
于 2013-11-06T21:29:02.453 回答