Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何找到地图上某一点的角度方向(相对于北方)_Ios_C_Map - Fatal编程技术网

Ios 如何找到地图上某一点的角度方向(相对于北方)

Ios 如何找到地图上某一点的角度方向(相对于北方),ios,c,map,Ios,C,Map,我需要在地图(21.4167,-39.8167)中找到北面和一个点之间的角度 这是我的密码 double MECCA_LONGITUDE = 21.4167; double MECCA_LATITUDE = -39.8167; -(void) getAngle :(float) phoneAngle: (float) lon:(float) lat { float ad = atan (sin (lon - MECCA_LATITUDE) / ( (cos (lat)) * (tan (

我需要在地图(21.4167,-39.8167)中找到北面和一个点之间的角度

这是我的密码

double MECCA_LONGITUDE = 21.4167;
double MECCA_LATITUDE = -39.8167;

-(void) getAngle :(float) phoneAngle: (float) lon:(float) lat
{

 float ad = atan (sin (lon - MECCA_LATITUDE) /  ( (cos (lat)) * (tan (MECCA_LATITUDE)) ) - ( (sin (lat)) * (cos (lon - MECCA_LONGITUDE)) ));

NSLog(@"###### %f", CC_RADIANS_TO_DEGREES(ad));
}

我仍然没有得到正确的答案。任何提示都将不胜感激。谢谢。

您的主要问题是
sin()
cos()
以弧度为参数,您正在通过度(您还交换了麦加的经度和纬度)

尝试:


谢谢这解决了问题。
double MECCA_LATITUDE = 21.4167;
double MECCA_LONGITUDE = 39.8167;

double r_delta_lon = CC_DEGREES_TO_RADIANS(MECCA_LONGITUDE - lon);
double r_lat2 = CC_DEGREES_TO_RADIANS(MECCA_LATITUDE);
double r_lon1 = CC_DEGREES_TO_RADIANS(lon);
double r_lat1 = CC_DEGREES_TO_RADIANS(lat);

double ad = atan2(sin(r_delta_lon) * cos(r_lat2),
    cos(r_lat1) * sin(r_lat2) - sin(r_lat1) * cos(r_lat2) * cos(r_delta_lon));