1.問題背景:
一般在寫軌跡回放的時候,車輛行進方向會有一個朝向的問題,這個需要實時計算,不斷修正車子前進方向。
2.openlayers圖片樣式(ol.style.Icon),角度是按照順時針旋轉的。
文檔說明,角度是按照順時針旋轉的
3.加載小車圖標測試
(1)初始小車圖標朝向
小車圖標初始朝向是朝東的
(2)把小車加載到地圖中
下車加載到地圖中,他的圖標方向和圖標本身方向是一致的
(3)改變小車朝向,讓他順著行進路線。(如何計算?)
3.1)先把以小車起點為原點建立一個坐標系,求出終點和起點的差值。
建立坐標系,并根據不同象限,列出差值的大于還是小于0
3.2)以第二象限為例,求出當前線段的角度。
計算角度
3.3)由此可以推論出,其余四個象限,角度計算方法,注意因為計算時用的是反正切函數所以弧度值為-Math.PI/2到Math.PI/2,所以在第三四象限時需要注意。
4.角度計算方法
function setAngle(first, second) {
let y = second[1] - first[1];
let x = second[0] - first[0];
let radAngle = Math.atan(y / x);
if (y <= 0 && x >= 0) {//第二象限
console.log('第二象限');
radAngle = -radAngle;
} else if (x >= 0 && y >= 0) {//第一象限
radAngle = -radAngle;
console.log('第一象限');
} else if (x <= 0 && y >= 0) {//第四象限
radAngle = Math.PI - radAngle;
console.log('第四象限');
} else if (x <= 0 && y <= 0) {//第三象限
radAngle = Math.PI - radAngle;
console.log('第三象限');
}
return radAngle;
}