我想从google road API返回的坐标数组中计算机动细节(左转、右转等)。我知道只有谷歌方向 API 返回的机动细节。但是,如果我使用道路 API 绘制自定义路线,那么如何计算机动细节?我尝试使用以下代码计算两个坐标之间的度数:
function radians(n) {
return n * (Math.PI / 180);
}
function degrees(n) {
return n * (180 / Math.PI);
}
function getBearing(startLat,startLong,endLat,endLong){
startLat = radians(startLat);
startLong = radians(startLong);
endLat = radians(endLat);
endLong = radians(endLong);
var dLong = endLong - startLong;
var dPhi = Math.log(Math.tan(endLat/2.0+Math.PI/4.0)/Math.tan(startLat/2.0+Math.PI/4.0));
if (Math.abs(dLong) > Math.PI){
if (dLong > 0.0)
dLong = -(2.0 * Math.PI - dLong);
else
dLong = (2.0 * Math.PI + dLong);
}
return (degrees(Math.atan2(dLong, dPhi)) + 360.0) % 360.0;
}
此函数返回度数,但我不知道如何计算或从度数操纵机动细节的逻辑是什么?
有没有其他方法可以从坐标计算机动细节?