#define toDeg(X) (X*180.0/M_PI)
1 /** 2 * @method 根据两点经纬度,计算与真北方夹角 3 * 4 * @param longitude1 5 * @param latitude1 6 * @param longitude2 7 * @param latitude2 8 */ 9 - (void)getAngle:(double)longitude1 latitude1:(double)latitude1 longitude2:(double)longitude2 latitude2:(double)latitude2 { 10 double cos_c = cos(90 - latitude2)*cos(90 - latitude1) + sin(90 - latitude2)*sin(90 - latitude1)*cos(longitude2-longitude1); 11 12 double sin_c = sqrt(1 - pow(cos_c, 2)); 13 14 double z = asin(sin(90 - latitude2)*sin(longitude2 - longitude1)/sin_c); 15 z = toDeg(z); 16 }
此处设定求B相对于A的方位角,即A为当前位置,B为目标位置
Aj:A点经度
Aw:A点纬度
Bj:B点经度
Bw:B点纬度
北纬为正,南纬为负;东经为正,西经为负
经纬度使用度,DDD.DDDDDD°,非度分或度分秒。
度数未加说明均采用角度制
R:地球平均半径
Azimuth:方位角,以真北为0度起点,由东向南向西顺时针旋转360度
时间: 2024-10-05 03:58:13