画布 map-canvas
2026年7月20日大约 2 分钟
画布 map-canvas
自定义 Canvas 绘制图层。
放在
map-2d的pieces里;enabled写在节点顶层。数据来源data-input:bind-fields(绑工程连接)或source(引用数据源)。
在线演示
画布层不依赖外部服务:内置「雷达扫描」模式按
canvas-coordinates角点贴到空白 CAD 网格图上逐帧动画;改canvas-mode可切水波纹 / 网格 / 纯色 / 自定义脚本。可拖拽缩放。
属性
| 属性 | 名称 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
enable-zoom | 限制缩放区间 | boolean | false | |
min-zoom | 最小级别 | number(min=0,max=24,step=0.1) | 0 | |
max-zoom | 最大级别 | number(min=0,max=24,step=0.1) | 24 | |
canvas-coordinates | 地理角点 | map-image-bounds | -15,10;15,-10 | |
canvas-mode | 绘制模式 | select | radar | 可选:radar / ripple / grid / solid / custom |
canvas-script | 自定义脚本 | js(height=260px) | // ctx: 2D 上下文;env: { size, time, progress, color, ... } … | |
canvas-color | 主色 | color | #3aa1ff | |
canvas-secondary-color | 副色 | color | #33e0ff | |
canvas-bg-color | 背景色 | color | transparent | |
canvas-opacity | 不透明度 | slider(min=0,max=100,step=1,unit=%) | 90 | |
canvas-size | 画布精度 | number(unit=px,min=16,max=2048) | 256 | |
canvas-speed | 动画周期 | number(unit=ms,min=200) | 3000 | |
canvas-line-width | 线宽 | number(unit=px,min=0.5,step=0.5) | 2 | |
canvas-grid-step | 网格间距 | number(unit=px,min=4) | 32 | |
canvas-ring-count | 水波环数 | number(min=1,max=12) | 3 | |
canvas-sweep-span | 扫描张角 | number(unit=°,min=5,max=180) | 30 | |
row-row-filter-mode-id | 选择数据规则 | select(condition) | — |
事件
| 触发器 | 名称 | 配在哪 | payload |
|---|---|---|---|
marker-click | 点击点要素 | map-2d 组件的 options.interactions(运行态按命中图层分流) | 命中要素属性行,公式 {:name} / {:value} 取值 |
region-click | 点击面要素 | 同上 | 同上 |
map-select / map-unselect | 选中 / 取消 | 同上 | 选中项数据 |
事件写在地图组件上而非图层上。图层还支持
feature-panel-uid(点击要素弹锚定窗口)与tooltip-enable(悬停浮层),见属性表。动作端可用mapLayerVisible/mapSetLayerStyle/mapRefreshData等 17 个地图动作,见 2D 地图 · 事件。
示例
{
"type": "map-canvas",
"uid": "ly_x",
"enabled": true,
"options": {
"canvas-mode": "radar",
"canvas-coordinates": "116.30,39.99;116.50,39.99;116.50,39.85;116.30,39.85"
}
}