OpenLayers10已经不支持指北针控件,所以就要手写一个控件。
原理:获取地图的旋转角度,将元素按照一定一的计算方式进行旋转
下面上代码
// 创建自定义指北针控件
const compassControl = new ol.control.Control({
element: document.createElement('view'),
render: (event) => {
const element = compassControl.element; // 直接访问控件的 DOM 元素
if (element) {
element.className = 'ol-compass';
const rotation = this.map.getView().getRotation(); // 获取地图的旋转角度
element.style.transform = `rotate(${(rotation) * (180 / Math.PI)}deg)`; // 旋转指北针
}
}
});
// 设置指北针控件的样式
const compassElement = compassControl.element;
compassElement.style.position = 'absolute';
compassElement.style.top = '50px';
compassElement.style.left = '10px';
compass