← 返回 Skills 市场
leo-gissss

KML_SHP_CAD格式转换_V1.0

作者 坤图_GIS · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ⚠ suspicious
35
总下载
0
收藏
0
当前安装
2
版本数
在 OpenClaw 中安装
/install kmlshpcadconverter
功能描述
通用GIS格式零配置互转工具。支持DWG(自动转DXF)/SHP/DXF/KML/KMZ/GeoJSON/ GeoPackage/GeoParquet/OVKML/OVJSN/DJI-WPMZ/Huace-KML的任意双向转换。 DWG直接拖入出KML/SHP——自动下载ODA转换引擎、自动识别CGCS2000投...
使用说明 (SKILL.md)

KML/SHP/CAD格式转换 V1.0

12 种 GIS 格式任意双向转换 | DWG 丢进去直接出 KML/SHP | 坐标系统全自动识别

坤图_GIS


一、快速开始(3 步上手)

Step 1: 安装依赖

pip install geopandas pyproj ezdxf shapely pyarrow

Step 2: 开始转换

# DWG → KML(全自动,无需配置坐标系)
python scripts/gis_converter.py 我的图纸.dwg 输出.kml

# DWG → SHP(自动识别 CGCS2000 分带)
python scripts/gis_converter.py 地形图.dwg 成果.shp

# 其他格式互转
python scripts/gis_converter.py 边界.shp 数据.geojson

Step 3: 查看结果

转换完成后自动输出日志,包含:

  • 自动识别的坐标系及置信度
  • 要素数量和几何类型统计
  • DWG→DXF 转换耗时(如有)

如果自动识别不确定,工具会主动提示:

检测到坐标位于湖北神农架区域,推测为 CGCS2000 3°带 第37带 (EPSG:4546),是否正确?[Y/n]

直接回车确认即可,或输入 n 手动指定。


二、支持格式全矩阵

↓ 输入 \ 输出 → SHP GeoJSON KML OVKML OVJSN DXF GPKG Parquet WPMZ Huace
DWG
DXF
SHP
GeoJSON
KML/KMZ
OVKML
OVJSN
GPKG
Parquet

图例:GPKG = GeoPackage(OGC标准,SHP推荐替代), WPMZ = DJI-WPMZ, Huace = 华测GNSS KML


三、完整命令参考

3.1 DWG/CAD 转 GIS(零配置推荐)

# 单文件转换
python scripts/gis_converter.py 地形图.dwg 成果.kml
python scripts/gis_converter.py 地形图.dwg 成果.shp
python scripts/gis_converter.py 地形图.dwg 成果.dxf       # DWG→DXF(版本转换)
python scripts/gis_converter.py 地形图.dwg 成果.geojson
python scripts/gis_converter.py 地形图.dwg 成果.gpkg       # GeoPackage

# 手动指定坐标系(覆盖自动检测)
python scripts/gis_converter.py 地形图.dxf 成果.shp --source-crs EPSG:3857

DWG 自动转换原理

  1. 检查系统是否安装 ODA File Converter(免费命令行工具)
  2. 未安装则自动下载(~28MB)并静默安装
  3. 在临时目录执行 DWG→DXF 转换
  4. 后续自动识别坐标系 → 标准 GIS 转换

首次转换 DWG 需联网下载 ODA 引擎,之后无需重复下载。

3.2 奥维地图格式

# OVKML 自动 GCJ-02→WGS84 纠偏
python scripts/gis_converter.py 奥维收藏夹.ovkml 成果.shp

# OVJSN(奥维JSON)读写
python scripts/gis_converter.py 数据.ovjsn 成果.geojson
python scripts/gis_converter.py 成果.geojson 奥维格式.ovjsn

# 禁用自动纠偏
python scripts/gis_converter.py 数据.ovkml 成果.shp --no-gcj02-correct

3.3 大疆无人机航线

python scripts/gis_converter.py 测区边界.geojson 航线任务.wpmz \
  --drone "M350 RTK" \
  --payload "Zenmuse P1" \
  --altitude 80 \
  --speed 10 \
  --action takePhoto

DJI 支持设备

型号 载荷 备注
M350 RTK H20/H20T/P1/L1/L2 旗舰机型
M300 RTK H20/H20T/P1/L1 上一代
Matrice 3D/3E M3D/M3E/M3E-T 紧凑型
Mavic 3E/3T/3M M3E/M3E-T/M3M 消费级测绘
Mini 4 Pro 内置相机 轻便型

航线参数说明

参数 CLI选项 默认值 说明
无人机型号 --drone M350 RTK 自动映射到DJI枚举值
相机载荷 --payload Zenmuse H20 自动映射到DJI枚举值
飞行高度/m --altitude 50 相对起飞点
飞行速度/m·s⁻¹ --speed 8 航点间速度
云台俯仰/° --gimbal-pitch -90 -90=正射, 0=水平
航点动作 --action takePhoto takePhoto/startRecord/hover
朝向模式 --heading-mode followWayline followWayline/fixed/north
高度模式 --altitude-mode relativeToGround relativeToGround/absolute

3.4 华测 LandStar 格式

python scripts/gis_converter.py 地块.shp 华测导出.kml \
  --name-field "地块编号" \
  --desc-field "备注"

3.5 GeoPackage / GeoParquet(现代化格式)

# SHP → GeoPackage(UTF-8原生,无字段名限制)
python scripts/gis_converter.py 数据.shp 数据.gpkg

# GeoParquet(列式压缩 10:1~20:1,DuckDB兼容)
python scripts/gis_converter.py 大数据.shp 大数据.parquet

3.6 Python API 调用

from gis_converter import convert

# DWG 零配置转换(自动DWG→DXF + 自动识别坐标系)
convert("地形图.dwg", "成果.kml")
convert("地形图.dwg", "成果.shp")

# DXF 自动识别坐标系
convert("管线图.dxf", "成果.shp")

# 手动指定坐标系
convert("图纸.dxf", "成果.shp", source_crs="EPSG:4490")

# 生成大疆航线
convert("测区.geojson", "任务.wpmz",
        drone_model="M350 RTK",
        payload_model="Zenmuse H20",
        altitude=80, speed=10,
        action_type="takePhoto")

# 北京54→WGS84(自动诊断偏移量)
convert("老数据.shp", "成果.kml", source_crs="EPSG:4214")

四、坐标系处理规则

优先级 规则 适用场景
1 文件内置 CRS(.prj / GeoJSON CRS / GPKG) SHP, GeoJSON, GPKG, Parquet
2 --source-crs 用户显式指定 所有格式,覆盖自动检测
3 自动坐标系识别 DXF, DWG(从投影坐标值推断)
4 奥维格式自动 GCJ-02 纠偏 OVKML, OVJSN
5 --source-gcj02 强制纠偏 任意 KML 格式
6 默认 WGS84 (EPSG:4326) 兜底

自动坐标系识别算法

适用于中国 CGCS2000 Gauss-Kruger 投影坐标:

  1. 地理坐标检测:X 在 ±180°、Y 在 ±90° → EPSG:4326
  2. Web Mercator 检测:投影坐标超出 GK 范围 → EPSG:3857
  3. 中国 GK 分带匹配
    • 从北坐标(Y)估算纬度 ≈ Y / 111,000
    • 根据纬度带确定区域参考经度(按中国行政区划)
    • 计算经度偏差 → 匹配最近 CGCS2000 3°/6° 分带

支持的分带:CGCS2000 3° 带 (EPSG:4534~4553,CM 75°135°E) 和 6° 带 (EPSG:45504562)


五、常见问题与解决方案

Q1: DWG 首次转换很慢

原因:首次需下载 ODA File Converter(~28MB) 解决:等待下载完成,之后同类转换秒级完成

Q2: SHP 中文乱码

原因:Shapefile 编码为 GBK/GB2312 但读取用 UTF-8 解决python gis_converter.py input.shp output.kml --encoding gbk

Q3: SHP 字段名变短/截断

原因:DBF 格式限制,字段名不能超过 10 个英文字符 解决:使用 GeoPackage 替代(无字段名限制): python gis_converter.py data.shp data.gpkg

Q4: 坐标系识别错误

原因:数据不在中国境内(境外投影坐标系),或为 CUSTOM 用户自定义投影 解决:手动指定: python gis_converter.py input.dxf output.shp --source-crs EPSG:XXXX

Q5: 北京54/西安80 转 WGS84 偏移 100~200 米

原因:pyproj 默认变换不使用精确的七参数/格网改正 解决:工具已自动诊断并输出偏移警告。如需精确转换,提供七参数后配置 pyproj 管线

Q6: GeoPackage 文件被锁定

原因:SQLite 单写入者限制,QGIS 等软件同时打开 解决:关闭所有打开该 gpkg 的软件后重试

Q7: DXF 属性丢失

原因:DXF 格式不支持属性表,仅保留几何图形和图层名 解决:转换时保留 layer 字段,可用 --name-field layer 按图层命名

Q8: OVOBJ 二进制无法解析

原因:奥维私有二进制格式,无公开解析规范 解决:通过奥维桌面端导出为 OVKML/OVJSN 后再转换


六、适用场景

场景 推荐流程
勘测定界 DWG→SHP dwg → shp(一条命令)
无人机航线生成 geojson → wpmz(指定无人机型号)
CAD→GIS 数据入库 dwg/dxf → gpkg(GeoPackage 替代 SHP)
奥维数据归档 ovkml/ovjsn → shp/geojson(自动纠偏)
坐标系统一 任意格式 → shp --target-crs EPSG:4546
大数据分析 shp/geojson → parquet(DuckDB 兼容)
华测 GNSS 数据处理 shp → huace-kml
WebGIS 发布 shp → geojson/gpkg

七、依赖环境

组件 版本要求 说明
Python ≥ 3.9 推荐 3.10+
geopandas ≥ 0.14 矢量数据处理核心
pyproj ≥ 3.6 坐标转换引擎
ezdxf ≥ 1.3 DXF 读写
shapely ≥ 2.0 几何运算
pyarrow 任意 GeoParquet 读写
ODA File Converter 自动安装 DWG→DXF 转换

八、已知限制

  1. OVOBJ 二进制无法直接解析,需通过奥维桌面端导出为 OVKML/OVJSN
  2. CASS XDATA 不支持(测绘行业专用 SOUTH-XDATA 编码)
  3. BJ54/西安80 精确转换需七参数(已内置诊断提醒)
  4. CRS 自动检测仅覆盖中国 CGCS2000 3°/6°带 + WGS84 + Web Mercator
  5. DWG 首次需联网下载 ODA File Converter
  6. SHP 字段名超过 10 字符自动截断(建议用 GeoPackage 替代)
  7. 高纬度(>50°N)坐标系识别精度下降

九、日志与排错

每次转换自动生成日志文件:logs/gis_convert_YYYYMMDD_HHMMSS.log

日志包含:

  • 输入/输出文件信息
  • DWG→DXF 转换详情(如有)
  • 自动坐标系识别结果及置信度
  • 坐标转换参数
  • 要素数量和几何类型统计
  • 错误堆栈(如有异常)

十、格式规范参考

详见 references/formats.md


\x3C!-- wm:坤图_GIS -->

安全使用建议
Install only if you are comfortable with the DWG feature downloading and silently installing ODA File Converter on Windows. Prefer manually installing ODA from a trusted source first, verify the installer where possible, and run DWG conversions in a constrained environment when handling files from untrusted sources.
能力标签
crypto
能力评估
Purpose & Capability
The file conversion, coordinate correction, and GIS output behavior fits the stated GIS/CAD converter purpose; I found no unrelated credential access, exfiltration, or destructive behavior.
Instruction Scope
The skill advertises zero-interaction DWG conversion and broad generic triggers such as format conversion and coordinate conversion, which could route users into a workflow that runs external tooling without a strong confirmation step.
Install Mechanism
For DWG input, the script downloads an ODA File Converter MSI from the internet to a temp path and runs msiexec with silent install flags, with no pinned checksum, signature verification, or explicit in-tool consent gate.
Credentials
Installing system software and running a third-party CAD parser is high-impact relative to ordinary local file conversion, even though it is purpose-aligned and disclosed in the documentation.
Persistence & Privilege
The ODA installer creates persistent host-level software outside the skill directory; logs are also written locally, but I found no background service, autorun setup, credential use, or privilege escalation code in the skill itself.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install kmlshpcadconverter
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /kmlshpcadconverter 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
KML/SHP/CAD格式转换 v1.0.1 - 支持12种GIS格式任意双向转换,包括DWG自动转DXF、SHP、KML、GeoJSON、GeoPackage、Parquet等主流格式 - 零配置CAD→GIS:DWG自动识别坐标系、秒级输出KML/SHP,首次自动下载ODA转换引擎 - 支持奥维OVKML/OVJSN及大疆DJI航线KML(含WPMZ)生成与格式互转 - 支持China CGCS2000/BJ54/西安80等主流投影坐标系自动识别与纠偏 - 提供命令行批量转换与Python API,日志详细记录每次转换及坐标系识别 - 针对专业CAD/GIS无人机/测绘场景定制多格式一键批量转换
v1.0.0
KML/SHP/CAD格式转换 1.0.0 - 首发版本,上线通用GIS格式零配置互转工具 - 支持DWG(自动转DXF)、SHP、DXF、KML/KMZ、GeoJSON、GeoPackage、GeoParquet、OVKML、OVJSN、DJI-WPMZ、华测KML等12种格式任意双向转换 - 自动DWG→DXF及坐标系识别,支持CGCS2000/BJ54/西安80全自动检测与纠偏 - 支持无人机航线KML(大疆WPMZ)、奥维、华测等行业特殊格式 - 支持批量格式转换、现代化GeoPackage/GeoParquet格式,强化大数据兼容 - 零配置体验,常见场景无人工干预,日志详尽,内置常见问题与解决方案
元数据
Slug kmlshpcadconverter
版本 1.0.1
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 2
常见问题

KML_SHP_CAD格式转换_V1.0 是什么?

通用GIS格式零配置互转工具。支持DWG(自动转DXF)/SHP/DXF/KML/KMZ/GeoJSON/ GeoPackage/GeoParquet/OVKML/OVJSN/DJI-WPMZ/Huace-KML的任意双向转换。 DWG直接拖入出KML/SHP——自动下载ODA转换引擎、自动识别CGCS2000投... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 35 次。

如何安装 KML_SHP_CAD格式转换_V1.0?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install kmlshpcadconverter」即可一键安装,无需额外配置。

KML_SHP_CAD格式转换_V1.0 是免费的吗?

是的,KML_SHP_CAD格式转换_V1.0 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

KML_SHP_CAD格式转换_V1.0 支持哪些平台?

KML_SHP_CAD格式转换_V1.0 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 KML_SHP_CAD格式转换_V1.0?

由 坤图_GIS(@leo-gissss)开发并维护,当前版本 v1.0.1。

💬 留言讨论