Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Получите координаты GPS с учетом текущего местоположения, пеленга и расстояния

Автор вопроса: ARealityОтветов: 1

Я пытаюсь получить координаты GPS с учетом текущего местоположения, пеленга и расстояния.

Но я не могу найти ничего, связанного с прикосновением к какао.

Я нашел здесь формулу Получить широту / долготу для текущей точки , расстояние и азимут

Есть ли способ попроще для iOS?

Заранее спасибо.

  • Встроенного метода нет. Попробуйте эту реализацию Objective-C формулы, на которую вы ссылаетесь. 10.05.2012

cocoa-touchgpscllocation

Ответы

Ответ 1 · рейтинг 1 · AReality

Конвертировал код в ссылке на Objective-C.

- (double)degreesToRadians:(double)degrees {
    return degrees * M_PI / 180;
}

- (double)radiansToDegrees:(double)radians {
    return radians * 180/ M_PI;
}


- (CLLocationCoordinate2D)remoteCoordinate:(CLLocationCoordinate2D)localCoordinate withDistance:(double)distance withBearing:(double)bearing {

    double earthRadius = 6378.1;         // Radius of Earth in kilometres.

    double rLat1 = [self degreesToRadians:localCoordinate.latitude];     // Convert latitude to radians
    double rLon1 = [self degreesToRadians:localCoordinate.longitude];    // Convert longitude to radians

    double rLat2 = asinl( sinl(rLat1) * cosl(distance / earthRadius) + cosl(rLat1) * sinl(distance / earthRadius) * cosl(bearing) );
    double rLon2 = rLon1 + atan2l( sinl(bearing) * sinl(distance/earthRadius) * cosl(rLat1), cosl(distance/earthRadius) - sinl(rLat1) * sinl(rLat2) );

    double dLat2 = [self radiansToDegrees:rLat2];        // Convert latitude to degrees
    double dLon2 = [self radiansToDegrees:rLon2];        // Convert longuitude to degrees

    return CLLocationCoordinate2DMake(dLat2, dLon2);
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы