leaflet-canvasmarker添加的marker旋转问题

Leafletjs的标准图层的marker是可以通过组件 leaflet-rotatedmarker进行图标旋转的,在marker上添加两个属性:

  • rotationAngle:旋转角度,以度为单位,顺时针旋转。
  • rotationOrigin:旋转中心,默认值为 'bottom center',对应于标记图标的"尖端"。

但是leaflet-canvasmarker组件的图层使用leaflet-rotatedmarker的旋转方式失效,而在leaflet-canvasmarker官网提供了一个旋转的方法: Leaflet.Icon扩展参数 rotate

用法启发:zhuanlan.zhihu.com/p/593744067

  • 旋转

  • 使用 rotate(angle) 方法可以旋转画布,但默认的旋转原点是画布的左上角,也就是 (0, 0) 坐标。

    我计算旋转角度通常是用 角度 * Math.PI / 180 的方式表示。

关键代码:rotate: Math.PI / 180 * v.direction,

js 复制代码
// 图标
const icon = L.icon({
    iconUrl,
    iconSize: [24, 24],
    iconAnchor: [12, 12],
    rotate: Math.PI / 180 * v.direction, 
});
// 加到marker上
const m = L.marker([v.lat, v.lng],{ icon, data: v});
相关推荐
瘦的可以下饭了3 分钟前
3 链表 二叉树
前端·javascript
我那工具都齐_明早我过来上班8 分钟前
WebODM生成3DTiles模型在Cesium地图上会垂直显示问题解决(y-up-to-z-up)
前端·gis
粉末的沉淀14 分钟前
jeecgboot:electron桌面应用打包
前端·javascript·electron
1024肥宅17 分钟前
浏览器相关 API:DOM 操作全解析
前端·浏览器·dom
烟西20 分钟前
手撕React18源码系列 - Event-Loop模型
前端·javascript·react.js
空镜21 分钟前
通用组件使用文档
前端·javascript
前端小张同学23 分钟前
餐饮小程序需要你们
java·前端·后端
码农胖大海29 分钟前
微前端架构(一):基础入门
前端