ARCHITECTURE DEEP REPORT · 2026-09-12 · REPO SNAPSHOT ED93CD2 · V0.7.0

从图纸到证据:
CAD2GIS 的架构突破

An Evidence-First, Replayable DWG→GIS Architecture

CAD→GIS 转换四十年没有解决的不是“读文件”,而是可信度。CAD2GIS 用 48 天、91 次提交给出了一条反常规的路:把 AI 关进控制平面,把几何交给确定性代码,把每一个数字绑上证据。

数据基准:GitHub 仓库 Mola-maker/CAD2GIS 本地快照 commit ed93cd2(2026-09-12 · v0.7.0)· 五天 39 提交 +48,294 行(K19)· 证据分级:仓库一手 > 官方/学术交叉验证 > 检索结论

SCROLL

§0 · 执行摘要

不是又一个转换器,而是一条可审计的证据生产线

它不承诺厘米级精度,它承诺每一个精度声明都能被独立复核。

CAD→GIS 转换四十年没有解决的不是“读文件”,而是可信度:图纸没有坐标权威、块嵌套无人展开、标注与几何两张皮、转换规则针对单图硬编码、结果无法重放。CAD2GIS 用 48 天、91 次提交(K18/K19)给出了一条反常规的路:把 AI 关进控制平面,把几何交给确定性代码,把每一个数字绑上证据

67,545 行生产代码、50 个 MCP 工具、0.7.0 冻结终测 1,300 项通过 / 0 failures(K20/K21),支撑 10 张真实电信图纸(4 张开发基线 + 6 张留出验证集)全部完成 source-bound 转换,九图 152,621 条 reader records 全部入库(K31),139/139 条缆段长度闭合、最大长度对账残差 1.24×10⁻⁸ m(K9/K10)。全部交付保持 CONDITIONAL / not independently verified,直到测量级控制点出现(K10/K11)。

§1 · 行业 GAP

四十年没填平的六个坑

DWG 读得出、坐标没人管、块展不开、规则不可复用——每条路都断在同一处:可信度。

DWG 是 Autodesk 私有二进制格式,40 多年演进超 30 个版本;GIS 世界至今没有一条“合法、免费、完整”的读取路径——GDAL 的 DWG 驱动依赖 ODA 商业库,官方发行版一律不含;内置 libopencad 只读且版本有限;GNU LibreDWG 纯逆向、GPLv3、官方状态仍是 beta,写支持止步 r2004(K2/K3/K4)。GDAL 官方文档写着一句行业判词:“DWG files are considered to have no georeferencing information through OGR”——读出来的坐标是裸绘图坐标,坐标权威问题整个推给用户(K2)。

既有方案的断点都有官方出处。Esri 官方配准 CAD 只能把控制点存进附属 .wld world file,仅限 1–2 个控制点的相似变换,纠不了畸变(K5);导入块属性要求预做 seed file,TAG 名必须与 GIS 字段名逐字一致(K6)。FME 官方承认“转换会丢标注和符号信息”是本质问题:CAD 是“图形+标注”范式,GIS 是“要素+属性”范式(K3)。学术框架(MDPI C2G, 2022)证实:文字压线造成缝隙、连续线不闭合成面、注记要人工“就近挂接”、几何误差破坏配准(K15)。

2024–2026 年的 LLM-for-GIS 主流(LLM-Geo、GIS Copilot、MapGPT)都是让 LLM 编排确定性工具;清华 FIB-Lab 的 GeoHaluBench(EMNLP 2025 Findings)实证 20 个 LLM 系统普遍产生地理空间幻觉——假 POI、错地址、不存在的路(K16/K17)。让一个会幻觉坐标系的系统去写坐标,是 2026 年 GIS 领域最危险的新坑。

血缘空白地带。ISO 19115 与 W3C PROV-O 标准成熟、OpenLineage/DataHub 等通用工具成熟,但“CAD→GIS 转换级血缘”(哪条 GIS 要素来自哪个 DWG 块/图层/规则)未检索到成熟方案——此为检索结论而非存在性断言(K17b)。

§2 · 架构

一条 12 节点的证据生产线

几何在数据平面里被确定性代码一步步推向交付;AI 只在控制平面里读证据、下决策。

canonical pipeline 按 K4b 原文转录:从 source bundle 到独立的 revisioned 审查工作区,每个环节要么是不可变事实的落盘,要么是一道显式门禁。实际代码阶段链(StageRecorder,K7)共 9 个 stage contract 回执——ingest → plan_domain → semantic_classification → topology → semantic_revision_projection → write_evidence_graph → write_source_gpkg → write_evidence_gpkg → write_delivery_gpkg——全部 cacheable: false禁止结果缓存复用(K1)。

0.7.0 起,semantic mapping 之后默认接两步:OSM 标准匹配--matching osm,四态 matched / coarse / unavailable / abstained,K25)与 SVG 候选提取svg_mode=candidate,失败不发布新 run,K27)。配准阶梯不变。交付侧只有一个决策:“单一转换核心,薄入口,按平台封装”(K27 原文)——同一核心被封装为 Windows/Linux 桌面入口、Android HTTPS 客户端与 MCP 智能体。

三个平面,各守其界

§3 · 设计哲学

九大架构突破

九条相互咬合的架构决策,每一条都反行业惯例,每一条都有数字兜底。

It may not invent coordinates, lengths, zone polygons, or entities; approve its own transform; or bypass independent check-point gates.

LLM_AGENT_ARCHITECTURE.md, CAD2GIS 仓库(K4b)

背景AI 权力法案的原文条款:LLM 是规划器与语义推理者,坐标、曲线、长度、变换参数全部由确定性代码计算。 为何重要对照 GeoHaluBench 对 20 个 LLM 系统地理幻觉的实证(K16),这不是保守,是唯一正确的分工。

The same source, profiles, code fingerprint, runtime fingerprint, and Decision Pack must be replayable without contacting a model provider.

LLM_AGENT_ARCHITECTURE.md, CAD2GIS 仓库(K4b)

背景重放边界条款:同一份源、同一套规则、同一个代码与运行时指纹,必须在不接触任何模型提供商的情况下字节级重放。 为何重要这把“AI 参与”从不可复现的黑箱变成可审计的流水线工序。

Equivalence is a regression check, not surveyed accuracy proof.

SOURCE_REPLAY_SEMANTIC_DELIVERY_2026-09-06.md, CAD2GIS 仓库(K13)

背景交付等价比较精确到几何 BLOB、长度与 lineage,但项目明确拒绝把“两次运行一致”包装成“实测精度”。 为何重要精度诚实是卖点不是弱点——这是全报告的裁决基调。

§4 · 证据

数字不说谎

7 轮回归、6 张留出图纸、11 份交付单元、139 条闭合缆段——每个数字都可以点进去看依据。

0.4.0 时代的三个英雄数字按升级纪律原样保留在本节:长度对账最大残差 1.24e-08 m、静默跳过 0 行、最终轮 642 项通过(见下图 1 与图 4,K9/K10/K14)。0.7.0 的新口径数字在 §4.5。

§4.5 · 五日三级

五天,三个版本,能力翻了一翻;精度声明,一个字没变

0.4.0 → 0.6.0 → 0.7.0 → 平台验收:39 次提交、318 个文件、+48,294 行(K19);CONDITIONAL 封顶、Manado BLOCKED、Android E2E blocked,一项没松。

2026-09-08 到 2026-09-12 的五天里,仓库从 0.4.0 基线连跳三级:0.6.0 升级精度与证据链(695 passed,K24),0.7.0 冻结语义与全平台交付(1,312 tests:1,300 passed / 0 failures / 306.237 s,K21),最后一天四类平台制品同日构建验收(K23)。OSM 标准匹配成为默认路径,GCP 微调搬上工作台,LibreDWG 原生缺陷被打上游补丁。

但有两处故意没有动Manado 保留 BLOCKED_STALE_INVENTORY_BINDING——清单绑定与新事实不匹配,阻断保留,不得以旧批准套新事实(K31);Android 端到端仍然 blocked——没有系统信任的 HTTPS 服务端,就不宣称端到端可用(K23)。软件行为证据 ≠ 测量级精度:本节所有 OSM 与平台新数字都只描述软件行为,精度声明一个字没变。

§5 · 裁决

钉在标尺最右端

从“营销话术”到“可独立复核的工程声明”——CAD2GIS 钉在最右端,并且自己把够不到的地方划了线。

它证明了

在 10 张真实电信 APD 图纸上,一条 source-bound、证据优先、AI 只居控制平面的流水线可以端到端跑通,且每个数字可回溯到内容寻址证据(K8/K9/K10)。

它没有证明(也拒绝假装证明)

绝对地面精度——无测量级 GCP,全部交付 CONDITIONAL / not independently verified。原文:“Passing source geometry/topology/length gates does not authorize an absolute map-accuracy claim”(K10)。

0.7.0 的边界声明原样保留

能力翻倍,声明不变——这是本次升级的裁决支柱:全部 run 仍 CONDITIONALauthority=relative_osmabsolute_accuracy_verified=false(K21/K31);Android 端到端仍 blocked(无系统信任的 HTTPS 服务端,K23);Windows 安装器未签名(K23);Manado 的阻断保留不解除(K31)。

最接近的历史类比

最接近的历史类比是 FME 之于 ETL——但 FME 解决“搬数据”,CAD2GIS 解决“为每个被搬的数字立证据”。这个周期没有真正的先例:把内容寻址证据图谱 + AI 权限法案 + 精度分级诚实同时作为一等架构约束的系统,在 CAD→GIS 领域未检索到先例(K17b,措辞为“未检索到”)。

文档中心 · DOCUMENTATION CENTER

报告讲架构为什么对,手册讲明天怎么用起来

与主报告同目录发布(docs/):一份十一章分页使用手册 + 四个过程子页——命令逐字转录自仓库文档,素材全部来自真实交付。入口已上移至页面顶部导航。

“把 AI 关进控制平面,把几何交给确定性代码,把每一个数字绑上证据。”

—— CAD2GIS 架构三原则 · 文档中心把它落成十一章可执行手册
个人 OC molamaker 检查图纸,身旁是道路、设备与定位图层
从图纸到 GIS 图层再到证据链 · 文档中心视觉 · OC 形象 · molamaker

使用手册 · 第一章 安装与首个转换 → 开始,或用顶部导航直达任一子页。

CAD2GIS 文档中心 · 命令逐字转录自仓库文档(usage-docs-material)

附录

台账、依赖与术语