如何在ios中显示从当前位置到地图上其他位置的航向?

时间:2014-04-23 04:58:25

标签: ios map cllocation

我有一个要求,我必须从用户当前位置向地图上的任何位置显示标题方向。假设我们在地图上有4个位置注释,除了当前位置,我想在点击它之后显示朝向任何位置的标题。 我们怎样才能实现它。我已经通过Map API文档& Locaiotn API,我发现当我们调用startupdatingheading方法时,我们在API提供的委托方法中得到标题值。我不知道我们如何从外部获取两个位置之间的标题数据。 请帮帮我。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

这将计算从直线上的lat1,lon1到lat2,lon2的初始方位。

double lat1=48.0;  // source latitude, example data
double lon1=17.0;  // source longitude

double lat2=49.0;  // destination latitude
double lon2=18.0;  // destination longitude

double lat1Rad = lat1 * M_PI / 180;
double lat2Rad = lat2 * M_PI / 180;

double dLon = (lon2 - lon1) * M_PI / 180;

double y = sin(dLon) * cos(lat2Rad);
double x = cos(lat1Rad) * sin(lat2Rad) - sin(lat1Rad) * cos(lat2Rad) * cos(dLon);

double bearingRad = atan2(y, x);

// this is the bearing from source to destination in degrees, normalized to 0..360
double bearing = fmod((bearingRad * 180 / M_PI + 360),360);