2013-11-06 4 views
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 футов.

Я сослался на следующие ссылки, но не дает точных результатов.

Calculating Cumulative elevation gain give me wierd results

How to calculate elevation like in runkeeper application

iPhone Core Location: Calculate total elevation loss/gain

+0

Вы пытаетесь вычислить общее количество ног залез во время прогулки, или выигрыш в высоте от начала ходить до конца? –

+0

@CarlVeazey есть какая-то разница в общем числе футов поднялась и получить на высоте. Не могли бы вы помочь мне, пожалуйста. – Suresh

+0

Если вы подниметесь на сотню футов и спуститесь вниз, вы поднялись бы на 100 футов и достигли отметки в 0 футов, верно? –

ответ

1

Вы должны всегда оценивать точность высота над уровнем моря, прежде чем делать расчет. свойство verticalAccuracy возвращает отрицательное значение, если высота недействителен

if (currentLocation.verticalAccuracy >= 0 && previewsLocation.verticalAccuracy >=0) { 
    if (currentLocation.altitude > previewsLocation.altitude) { 
     TotalElevation = TotalElevation + currentLocation.altitude - previewsLocation.altitude; 
    } 
} 
+0

Я использовал выше состояние, но нет эффекта. Я получаю очень высокие значения поднятых ног. – Suresh

+0

запомнить инициализировать oldelevation в DBL_MAX. поэтому первое место игнорируется – Simon

+0

Да. Я добавляю текущее повышение места в oldelevation, поэтому первое место будет проигнорировано. – Suresh

Смежные вопросы