iPhone: рассчитать расстояние при ходьбе с помощью GPS - PullRequest
3 голосов
/ 13 марта 2012

Я хочу рассчитать расстояние, которое пользователи преодолевают при ходьбе, используя GPS. Например, пользователь нажимает кнопку «Пуск» и начинает идти или бежать, чем когда он сделал, он нажимает «Стоп». Каким будет минимальное расстояние, которое пользователь должен пройти, чтобы получить различную длину лота?

Как мы можем сделать это в IPhone, если взять лат, через каждые 0,3 секунды, чем в последний, у нас есть список точек?

1 Ответ

3 голосов
/ 13 марта 2012

Вы можете сделать это, рассчитав расстояние между двумя точками (широта, долгота):

(я не проверял):

-(double)distanceBetweenCoordinate:(CLLocationCoordinate2D)c1 andCoordinate:(CLLocationCoordinate2D)c2 {
    double long1 = degreesToRadians(c1.longitude);
    double lat1 = degreesToRadians(90 - c1.latitude);

    double long2 = degreesToRadians(c2.longitude);
    double lat2 = degreesToRadians(90 - c2.latitude);

    double gamma = fabs(long1 - long2);
    if (gamma > M_PI) {
        gamma = 2 * M_PI - gamma;
    }    

    double result = cos(lat2) * cos(lat1) + sin(lat2) * sin(lat1) * cos(gamma);
    return acos(result) * 6366.1977; // Kilometers
};

CGFloat degreesToRadians(CGFloat degrees) {
    return degrees * M_PI / 180;
};

ОБНОВЛЕНИЕ: Использовать distanceFromLocation - Рассчитать расстояние между двумя точками вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...