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});
相关推荐
LeeYaMaster11 小时前
15个例子熟练异步框架 Zone.js
前端·angular.js
evelynlab11 小时前
打包原理
前端
拳打南山敬老院12 小时前
Context 不是压缩出来的,而是设计出来的
前端·后端·aigc
用户30767528112712 小时前
💡 从"傻等"到"流淌":我在AI项目中实现流式输出的血泪史(附真实代码+深度解析)
前端
bluceli12 小时前
前端性能优化实战指南:让你的网页飞起来
前端·性能优化
SuperEugene12 小时前
Vue状态管理扫盲篇:如何设计一个合理的全局状态树 | 用户、权限、字典、布局配置
前端·vue.js·面试
没想好d12 小时前
通用管理后台组件库-9-高级表格组件
前端
阿虎儿12 小时前
React Hook 入门指南
前端·react.js
核以解忧12 小时前
借助VTable Skill实现10W+数据渲染
前端
WangHappy12 小时前
不写 Canvas 也能搞定!小程序图片导出的 WebView 通信方案
前端·微信小程序