2013-07-30 5 views
2

Я хочу рассчитать расстояние между 2 lat & long. Я могу рассчитать расстояние, как показано нижеПолучите расстояние между 2 широтой и долготой в iOS6 +

CLLocation *currentLoc = [[CLLocation alloc] initWithLatitude:-24.4132995 longitude:121.0790024]; 
CLLocation *restaurnatLoc = [[CLLocation alloc] initWithLatitude:-32.8310013 longitude:150.1390075]; 
CLLocationDistance meters = [restaurnatLoc distanceFromLocation:currentLoc]; 
NSLog(@"Distance between 2 geo cordinates: %.2f Meters",meters); 

Теперь я хочу, чтобы получить направление от CurrentLocation к restaurnatLoc. Для этого у меня есть ниже код

double DegreesToRadians(double degrees) {return degrees * M_PI/180;}; 
double RadiansToDegrees(double radians) {return radians * 180/M_PI;}; 

-(double) bearingToLocationFromCoordinate:(CLLocation*)fromLoc toCoordinate:(CLLocation*)toLoc 
{ 
    double lat1 = DegreesToRadians(fromLoc.coordinate.latitude); 
    double lon1 = DegreesToRadians(fromLoc.coordinate.longitude); 

    double lat2 = DegreesToRadians(toLoc.coordinate.latitude); 
    double lon2 = DegreesToRadians(toLoc.coordinate.longitude); 

    double dLon = lon2 - lon1; 

    double y = sin(dLon) * cos(lat2); 
    double x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dLon); 
    double radiansBearing = atan2(y, x); 

    return RadiansToDegrees(radiansBearing); 
} 

возвращает подшипник = 114,975752 Теперь, как я могу решить, стоит ли ресторан в Северной, Южной, Западной, Восточной, NW, NE, SW, SE от моего текущего местоположения?

Я получаю 1 решение по этой ссылке Direction based off of 2 Lat,Long points Но если я рассматриваю это решение, то у меня есть сомнения относительно подшипника 114 из моего местоположения (красного круга) в ресторан (зеленый круг), как показано ниже. Поправьте меня, если я ошибаюсь.

enter image description here

Как текущего местоположения «Западная Австралия» & ресторан расположение «Сидней», как показано на Google Maps.

Может ли любое тело сказать мне, что здесь происходит неправильно? Благодарю.

///////////////////////////// Обновление ////////////// ///////////////

Неправильная диаграмма компаса. Вот правильная схема все благодаря AlexWien

enter image description here

Теперь я получаю правильный вывод

ответ

2

вашего компаса розы совершенно неправильно. вы когда-нибудь смотрели на компас? откройте приложение компаса iphone и посмотрите, где находится 90Degrees. Это восток, а не запад, как в вашей графике.

географическое направление измеряется по часовой стрелке!

so 114 deg is east, который подходит вам по ожиданию

+0

My bad ... Very sorry Извините. На самом деле у меня нет iPhone, я работаю над iPod touch. Спасибо, что указал мне. – iOSAppDev

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

  • Нет связанных вопросов^_^