用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ming1zhou88/minemap-skills --skill minemap-plugin-echarts-integration命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | minemap-plugin-echarts-integration |
| description | MineMap 与 ECharts 集成规范。用于散点、飞线、饼图、雷达图、3D 柱图等地图叠加可视化。 |
ECharts 集成不是 MineMap 内核导出的标准渲染对象,而是 demo 明确展示的一类“外部图表叠加层”。
当前 demo 至少给出了三条可靠路径:
demo/js/minemap-echarts-layer.js 提供的 MinemapEChartsLayerInlineEChartsLayerecharts.init(...)、自行绑定地图同步事件这些路径本质都依赖同一件事:
map.project([lng, lat]) 把地理坐标转成屏幕像素其中:
echarts.html 属于“手工 overlay 写法”echarts-line-chart-overlay.html 属于“页面内展开实现 layer”echarts-*-simple.html 系列更多体现“复用 MinemapEChartsLayer + 业务图表分离”demo/js/minemap-echarts-layer.js 已明确支持:
scattereffectScatterlinespie各自的地理输入约定为:
scatter / effectScatter: value: [lng, lat, ...]lines: data[i].coords = [[lng, lat], [lng2, lat2], ...]pie: centerCoord: 'minemap' 且 center: [lng, lat]demo 还补充了典型业务形态:
map.on('load', ...)dispose()对应文件:demo/js/minemap-echarts-layer.js
这是当前最值得复用的模式,因为它把这几个关键问题都封装了:
echarts.init(...)move / zoom / rotate / pitch / resize 同步coordinateSystem: 'minemap' 转 cartesian2ddispose() 清理如果业务只是要把 ECharts 叠到 MineMap 上,优先照这个组件型写法组织,而不是每个页面重复写一遍。
对应 demo:demo/html/echarts-line-chart-overlay.html
这个 demo 把 layer 逻辑直接展开在页面里,价值在于:
xAxis / yAxis / grid 为什么要重建series.coordinateSystem = 'minemap' 到 cartesian2d 的转换适合首次排查:
对应 demo:demo/html/echarts.html
这是“地图主画布 + ECharts 整屏 overlay”的代表模式。适合:
这种模式通常不是每个点挂一个 DOM 图表,而是把整批图形一次性画在一个 ECharts canvas 上。
对应 demo:demo/html/echarts-pie-chart-simple.html
这里最关键的约束是:
coordinateSystem: 'minemap'centerCoord: 'minemap'center 必须仍然写地理坐标 [lng, lat]而在 layer 里,饼图中心不走普通 y 翻转逻辑。
对应 demo:demo/html/echarts-radar-chart-simple.html
这个 demo 验证了另一件事:
echartsLayer.getEChartsInstance().on('click', ...) 把图表交互反向驱动地图业务状态也就是说,ECharts 叠加层不只是“显示”,也能作为交互入口。
对应 demo:
demo/html/echarts-bar-chart-3d-simple.htmldemo/html/echarts-radar-chart-simple.html这类 demo 采用“双图层职责分离”:
echarts.init(container)这是很推荐的组织方式,因为地图同步层和复杂分析图层职责不同,不要强行混成一个实例。
coordinateSystem: 'minemap' 是 demo/plugin 层自己解释的协议,不是说明 MineMap 官方内核天然认识 ECharts。
当前可靠证据集中在:
scattereffectScatterlinespie超出这些类型时,要先补坐标转换逻辑,再谈复用。
minemap-echarts-layer.js 里明确区分了饼图:
只在初始化时算一次像素坐标是不够的。至少要绑定:
movezoomrotatepitchresize若不 dispose():
当点位很多时,Marker + DOM 图表会很快变重。大批量情况下,优先整屏 ECharts overlay。
这会在缩放、旋转、倾斜后迅速失真。正确路径是始终保存地理坐标,把像素换算推迟到 overlay 层。
这通常是 overlay 容器 pointer-events 策略没设计好。minemap-echarts-layer.js 已把它做成可配置项。
resize() 与位置更新一起做,避免容器尺寸和坐标基准不一致demo/js/minemap-echarts-layer.jsdemo/html/echarts.htmldemo/html/echarts-line-chart-overlay.htmldemo/html/echarts-line-chart-simple.htmldemo/html/echarts-pie-chart-simple.htmldemo/html/echarts-radar-chart-simple.htmldemo/html/echarts-bar-chart-3d-simple.htmlminemap-events-and-pickingminemap-performance-and-backendminemap-business-airline-and-linesminemap-fundamentals