乐于分享
好东西不私藏

一份Excel坐标表,如何用 Skill 通过 QGIS MCP里一步转成 GPKG?

一份Excel坐标表,如何用 Skill 通过 QGIS MCP里一步转成 GPKG?

这次拿到的是一份 Excel 坐标表:每行是一串坐标。

对于这种不能直接被QGIS读取的数据,处理顺序其实不复杂:Excel先转CSV,坐标文本整理成标准WKT Polygon,丢进QGIS做投影转换、几何检查、赋属性字段,最后导出GPKG。

一、先把流程跑一遍

处理顺序很简单,但每一步都要留下可检查的结果:

·Excel 转 CSV,并使用 UTF-8 BOM 编码;

·把坐标文本转换为标准 WKT Polygon;

· QGIS Desktop 3.28.7 中加载图层;

· EPSG:4326 投影到 EPSG:4545;

·检查无效几何;新增 id、名称字段;

·导出 GPKG,并重新读取确认数据;

·确认图层已进入 QGIS 图层树、地图画布,并且处于可见状态。

二、调用Skill:一次任务如何生成 GPKG

当我把以上步骤封装成一个skill,那会发生什么呢?

已关注
关注
重播 分享

视频里我调用了一次 qgis-wkt-to-gpkg Skill,并指定 Excel 文件。我只点了一次任务,CSV、WKT、投影、检查和桌面验收整个流程被执行并得到预期的结果。

视频里,Skill 实际完成了什么?

1.先读取 Excel 的工作表与坐标内容。此次数据只有一个有效工作表,坐标范围约为经度 108、纬度 22,因此按 EPSG:4326 作为源坐标系处理。

2.将坐标文本整理为标准 WKT Polygon,并生成 UTF-8 BOM 编码的 CSV。加载 CSV 时,Skill 会把含中文目录的文件路径转成 URL,再拼接 wktField 等参数,避免 QGIS 分隔文本数据源因为中文路径无法识别而加载失败。

3.确认 QGIS Desktop 已通过 MCP 连接:先检查 ping/pong 和当前工程状态,再只使用这个已连接的 QGIS 实例执行后续操作。

4. QGIS 中加载 WKT 图层,将数据从 EPSG:4326 投影到 EPSG:4545;随后检查空几何和无效几何,并补充连续的 id 字段和“图斑01、图斑02……”这样的名称字段。

5.导出 GPKG 后重新读取结果,确认要素数量、坐标系和字段都符合预期。本次复跑得到 37 个图斑,目标坐标系为 EPSG:4545,无效几何为 0。

6.最后把 GPKG 加回当前 QGIS 工程,等待画布刷新后检查图层树、地图画布和可见性。只有数据和桌面状态都通过,Skill 才把这次任务视为完成。

所以,“一步转成 GPKG”指的是一次调用完成整条工作流,把本来容易漏掉的格式、投影、回读和界面验收等中间环节变成固定门槛最终得到预期结果。

一个很容易忽略的坑:中文路径要做 URL 编码

这次还补上了一条很实用的经验。CSV 文件位于含中文目录的路径中,例如“4.数据”。如果直接把 Windows 原始路径拼进 QGIS 的分隔文本数据源 URI,QGIS 可能无法正确解析,结果就是 CSV 加载失败,或者 WKT 字段没有被识别。

uri = QUrl.fromLocalFile(csv_path).toString()uri += "?type=csv&delimiter=,&wktField=wkt"

关键点是:先把文件路径转成 URL,再追加 type、delimiter、wktField 等参数。中文目录会被转成百分号编码,QGIS 才能稳定识别路径。

三、为什么还要把流程做成 Skill?

第一遍跑通,只能证明“这次做成了”;做成 Skill,才能让下一次也按同一套标准做。

这类坐标表处理并不只是把 Excel 转成 GPKG。中间还有编码、WKT 格式、中文路径、坐标系、无效几何、字段、导出回读,以及 QGIS 图层是否真正加载到画布里。手工操作时,任何一步漏掉,最后拿到的文件都可能有问题。

把流程封装成 Skill 后,这些步骤就变成固定检查项:先检查输入,再连接 QGIS,处理数据,导出 GPKG,最后回读并确认图层可见。这样它不只是替我省几次点击,而是把一次经验留下来,下次遇到类似表格可以直接复用

四、一次“失败”,反而让 Skill 更可靠

复跑时曾出现过一次看似矛盾的情况:GPKG 已经生成,图层也已加入项目,但脚本立即检查画布时却提示没有确认。最后发现这不是数据问题,而是 QGIS 界面刷新是异步的。

因此,Skill 不再在 addMapLayer 和 refresh 后立刻下结论,而是处理 Qt 事件、在有限时间内等待,并同时检查图层树、画布和可见性。这里真正被固化下来的,不是一个按钮顺序,而是“数据成功”和“桌面交付成功”必须分开验证。

最后

对我来说,Codex、QGIS MCP 和 Skill 组合起来,最有价值的地方不是替人点几下鼠标,而是把一段容易遗漏步骤的 GIS 操作,变成一套能复跑、能检查、能继续修改的工作流。

如果你手上也有一份坐标表,下一次不妨先问一句:它最终是“导出了一份文件”,还是“已经在 QGIS 里可用、可验收、可继续编辑”?