做测绘和GIS这行快十年了,我见过太多新手在 CAD 转 GeoJSON 这一步上栽跟头。
昨天有个刚入行的小伙子找我哭诉,说他的 CAD 图纸导进去全是乱码,坐标还偏了十万八千里。
其实问题往往不在软件,而在你对“坐标系统”的理解还不够深。
今天我不讲那些晦涩的理论,直接拿我上个月帮一家地产公司处理地形图的真实案例来说事。
当时他们给了一份总平图,图层乱得像盘丝洞,有标注、有填充、还有各种杂线。
如果直接粗暴地用插件转换,出来的 GeoJSON 文件能把你电脑卡死,而且属性字段全丢。
我们当时花了半天时间,先在 CAD 里做了一次“大扫除”。
第一步,清理无效图层。
那些只有装饰作用的背景图、已经废弃的标注,全部冻结或删除。
这一步很关键,因为 CAD 导入 geo 时,每一个实体都会被解析,垃圾数据越多,转换效率越低。
第二步,统一图层命名。
别嫌麻烦,把“墙体”、“道路”、“绿化”这些关键要素单独分层。
我们在转换脚本里,是根据图层名来映射 GeoJSON 的属性字段的。
如果图层名乱七八糟,导出来的数据根本没法用,后续在 ArcGIS 或 QGIS 里做分析就是灾难。
这里有个坑,很多 CAD 里的多段线(Polyline)在导入后,如果没闭合,在 GIS 里就会变成开放线,导致面积计算错误。
所以,在导出前,务必检查一遍闭合性。
我当时用了个简单的 LISP 脚本,批量检查并闭合了所有多边形。
这招虽然土,但真管用。
接下来是坐标问题。
这是最容易翻车的地方。
CAD 默认是笛卡尔坐标系,而 GeoJSON 通常用 WGS84 经纬度。
如果你的 CAD 图纸没有定义正确的投影坐标系,导出来的点可能飘在太平洋里。
我们当时的做法是,先在 CAD 里确认图纸的基准点,然后使用专业的转换工具,手动指定源坐标系和目标坐标系。
别指望全自动转换能一劳永逸,手动校准那一下,能省你后面几天的排查时间。
转换过程中,我还遇到一个特殊情况,就是 CAD 里的块(Block)属性。
有些设计院的图纸,把设备参数都写在块属性里了。
普通的转换工具根本读不出来,导致导出的 GeoJSON 里,设备全是空的。
这时候,我们需要用到更高级的解析器,或者先在 CAD 里把块炸开(Explode),提取属性。
虽然炸开会丢失一些关联信息,但对于纯空间数据转换来说,这是最稳妥的办法。
最后生成的 GeoJSON 文件大小,从最初的几百兆,优化到了几十兆。
加载速度提升了不止一倍。
这就是细节的重要性。
很多人觉得 CAD 导入 geo 是个技术活,其实它更多是个“整理活”。
你对待数据的态度,决定了最终成果的质量。
别总想着找一键转换的神器,那些工具往往只能解决 80% 的问题,剩下的 20% 才是体现你专业度的地方。
我在处理 geojson转cad 的反向流程时,也发现同样的问题。
如果 GIS 里的数据拓扑关系没处理好,转回 CAD 就会变成一堆断裂的线,根本没法用于施工。
所以,双向转换都要讲究“净度”。
最后提醒一下,转换完成后,一定要在 GIS 软件里打开看看。
别导完就扔一边,去检查一下属性表对不对,图形位置对不对。
这一步看似多余,但能帮你避免很多后期返工的痛苦。
做这行,耐心比技术更重要。
希望这篇 cad导入geo教程 能帮你少走弯路,别再为那些莫名其妙的报错头疼了。
记住,数据清洗永远在转换之前,这是铁律。