Openlayers樣式圖標角度計算問題

1.問題背景:
一般在寫軌跡回放的時候,車輛行進方向會有一個朝向的問題,這個需要實時計算,不斷修正車子前進方向。
2.openlayers圖片樣式(ol.style.Icon),角度是按照順時針旋轉的。


文檔說明,角度是按照順時針旋轉的

3.加載小車圖標測試
(1)初始小車圖標朝向


小車圖標初始朝向是朝東的

(2)把小車加載到地圖中
下車加載到地圖中,他的圖標方向和圖標本身方向是一致的

(3)改變小車朝向,讓他順著行進路線。(如何計算?)
3.1)先把以小車起點為原點建立一個坐標系,求出終點和起點的差值。
建立坐標系,并根據(jù)不同象限,列出差值的大于還是小于0

3.2)以第二象限為例,求出當前線段的角度。
計算角度

3.3)由此可以推論出,其余四個象限,角度計算方法,注意因為計算時用的是反正切函數(shù)所以弧度值為-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;
        }
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容