我想計算2 lat的長度之間的距離。我能夠計算距離如下獲取iOS6中2經度和緯度的距離+
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現在,我怎麼能決定是否餐廳是北,南,西,東,西北,東北,西南,東南,從我目前的位置?
我從這個鏈接得到1個解決方案Direction based off of 2 Lat,Long points但是,如果我考慮這個解決方案,那麼我對從我的位置(紅色圓圈)到餐廳(綠色圓圈)的軸承114有懷疑,如下所示。糾正我,如果我錯了。
由於當前的位置是「西澳大利亞」 &餐廳位置是「悉尼」,如谷歌地圖顯示。
任何機構都可以告訴我這裏出了什麼問題嗎?謝謝。
///////////////////////////// 更新 ////////////// ///////////////
我的指南針圖是錯誤的。這是正確的圖表一切都要歸功於AlexWien
現在我得到正確的輸出
我的壞...非常抱歉。其實我沒有iPhone,我正在使用iPod touch。感謝您指點我。 – iOSAppDev