gpt4 book ai didi

ios - 如何找到 map 中某个点的角度方向(相对于北方)

转载 作者:行者123 更新时间:2023-11-28 22:43:44 24 4
gpt4 key购买 nike

我需要在 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 (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));

关于ios - 如何找到 map 中某个点的角度方向(相对于北方),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13800255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com