用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ming1zhou88/minemap-skills --skill minemap-plugin-edit命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | minemap-plugin-edit |
| description | MineMap 编辑插件规范。用于要素绘制、选中、样式覆写、锁定、批量写入与叠加编辑。 |
Edit 不是 source/index.js 里的内建主干类,而是 demo 明确依赖的外挂编辑插件。
从 demo 看,它的真实接入方式是:
load 后执行 new minemap.edit.init(map, options)注意:这些插件资源在 demo 里主要通过远程 / 内网 URL 引入,并不是当前仓库里统一打包好的正式源码入口。因此文档只能把它视为“demo 已验证的外部插件依赖”,不能把它描述成 MineMap 主包内建能力。
所以它更像“编辑工作台层”,而不是 style layer、scene component 或 primitive。
以下能力都已在 demo 中出现:
new minemap.edit.init(map, options)edit.onBtnCtrlActive(mode)edit.setCustomStyle(style)edit.setFeatures(featureCollection)edit.draw.add(featureOrCollection)edit.draw.getSelectedIds()edit.draw.deleteAll()edit.setFeaturePropertiesByIds(ids, properties)edit.setLockByIds(ids, true)map.on('edit.record.create', handler)这说明业务上应把它当作“独立插件实例 + 内部 draw 池”的模式使用。
map.on('load', ...) 中创建 editsetCustomStyle(...) 或 setFeaturePropertiesByIds(...)classificationType、锁定与交互拾取冲突对应 demo:demo/html/Edit.html
最基础的控制方式不是直接调用一堆 draw 子方法,而是统一走:
edit.onBtnCtrlActive('point')edit.onBtnCtrlActive('line')edit.onBtnCtrlActive('polygon')edit.onBtnCtrlActive('rectangle')edit.onBtnCtrlActive('circle')edit.onBtnCtrlActive('trash')edit.onBtnCtrlActive('undo')edit.onBtnCtrlActive('redo')这说明:如果业务要做自定义工具条,最稳的做法是“自己做按钮 UI,但把状态切换仍委托给插件”。
对应 demo:demo/html/LineRoundCap.html
已有 FeatureCollection 时,优先:
edit.setFeatures(fc)要在现有编辑池继续追加时,再用:
edit.draw.add(featureCollection)这两个入口语义不同,不建议混成一个“万能导入函数”理解。
对应 demo:demo/html/LineRoundCap.html
插件允许在写入后按 id 批量改属性:
edit.setFeaturePropertiesByIds(ids, {...})demo 已验证的属性包括:
custom_stylelineWidthlineColorfillColorfillOpacityfillOutlineColorfillOutlineWidthfillOutlineDasharray因此,“编辑态样式”与“业务属性”是可以放在同一个 feature properties 体系里协同管理的。
对应 demo:demo/html/VectorGeojsonOverlap.html
和 demo/html/FillLayerWithOverlapPolygon.html
这里要分两种已在 demo 出现的写法:
VectorGeojsonOverlap.html
edit.draw.add(feature)edit.setLockByIds([activeId], true)FillLayerWithOverlapPolygon.html
edit.setFeatures(otherOrgFeature) 放入底稿edit.draw.add(...) 继续追加当前活动要素与轮廓要素setFeatures(...) 的返回值,但没有显式调用 setLockByIds(...)因此,能被明确证明的“显式锁定 API 用法”来自 VectorGeojsonOverlap.html;FillLayerWithOverlapPolygon.html 更适合当作“底稿 + 当前编辑要素分池组织”的证据。
这类模式适合:
对应 demo:demo/html/VectorGeojsonOverlap.html
在编辑初始化参数里,demo 出现了:
classificationType: true从注释语义看,它用于让 edit 相关图层位于三维图层之上。业务只要涉及:
都应优先检查这个开关。
Edit 不是 MineMap 主包自动可用对象。不要在没有额外引入插件脚本的前提下,直接假设 minemap.edit 一定存在。
load 后再初始化demo 都是在 map.on('load', ...) 中创建插件实例。编辑层本质上依赖地图内部样式与交互状态,过早初始化容易出时序问题。
当你已经用 custom_style、lineWidth、fillColor 这类属性驱动样式时,就不要再在别处维护第二套脱节样式状态。
底稿锁定后再追加活动要素,是 demo 支持的可靠路径。不要把“可展示”和“可编辑”混成一个 feature pool。
不合适。它不是只负责渲染的 source/layer,而是带交互状态、选择态、撤销重做与编辑生命周期的插件。
new minemap.edit.init(...)容易出现交互层、样式层或事件绑定状态不稳定的问题。
若你有模型、地形、栅格、贴地面图层同时存在,编辑图形可能被遮挡;这时要复核:
classificationTypedepth-testedit 实例,不要反复销毁重建FeatureCollectiondemo/html/Edit.htmldemo/html/LineRoundCap.htmldemo/html/VectorGeojsonOverlap.htmldemo/html/FillLayerWithOverlapPolygon.htmlminemap-style-and-dataminemap-events-and-pickingminemap-2d-3d-overlay-and-classificationminemap-primitive-adapt-terrain