做测绘和GIS这行七年了,我最怕听到的话就是:“老板,这个CAD图纸能直接转成GeoJSON或者Shapefile吗?明天就要用。” 每次听到这话,我血压都往上涨。真的,别天真了。CAD是画图用的,Geo是搞地理信息用的,这俩底层逻辑根本不一样。你拿个画了线条的CAD去转,出来的东西要么是一堆乱码,要么就是坐标错得亲妈都不认识。今天我不讲那些虚头巴脑的理论,就聊聊怎么把CAD文件转geo文件这事儿办漂亮,顺便帮你省点冤枉钱。
先说个真事儿。上周有个同行找我哭诉,花了两千块找个外包搞转换,结果导出来的数据,房子盖到了河里,路修到了天上。为啥?因为CAD里的坐标可能是相对坐标,或者是没有投影的局部坐标,而Geo文件通常需要严格的WGS84或者地方坐标系。如果你不先校准,转出来就是垃圾。
所以,第一步,千万别急着点转换按钮。你要先检查你的CAD文件。打开AutoCAD,输入命令UCS,看看坐标系是不是世界坐标系(World)。如果是一堆乱七八糟的坐标值,比如X是几千万,Y是几百万,那说明你用的是大坐标,这时候直接转,小数点位置不对,数据全歪。这时候你得用“缩放”命令,或者在GIS软件里先做坐标转换。这一步省了,后面哭都来不及。
第二步,清理图层。CAD里什么都有,标注、文字、辅助线、填充图案。这些在GIS里大多没用,甚至是大害。比如一个复杂的填充图案,转成Geo文件后,可能会变成成千上万个多边形,文件巨大无比,打开能卡死你的电脑。所以,在CAD里把不需要的图层冻结或删除,只保留你需要的那部分,比如道路中心线、地块边界。这一步虽然繁琐,但能帮你节省80%的处理时间。
第三步,选择合适的转换工具。市面上有很多在线转换工具,号称“一键转换”。我劝你,除非是测试数据,否则别用。免费工具往往有限制,比如只能转100MB以内的文件,或者精度大打折扣。对于正式项目,我推荐用QGIS或者ArcGIS。QGIS是免费的,功能强大,支持直接导入CAD文件,然后选择你要的属性字段进行导出。操作很简单:打开QGIS,点击“图层”->“添加图层”->“添加矢量图层”,选择你的DWG或DXF文件。这时候你会看到很多图层,选中你需要的,右键点击,选择“另存为”,格式选GeoJSON或者Shapefile。注意,在保存选项里,一定要勾选“仅保存选定要素”,并且检查坐标系设置。
这里有个坑,很多人转完发现属性丢失了。这是因为CAD里的属性可能存储在XData或者扩展实体中,而标准的转换工具不一定能读取。这时候,你需要在CAD里先把这些属性提取到标准的属性块里,或者使用专门的插件进行预处理。别嫌麻烦,这一步能救你的命。
最后,验证数据。转完别急着交差。在GIS软件里打开新生成的Geo文件,看看要素数量对不对,属性表里有没有空值,图形有没有重叠或者缝隙。如果发现有问题,回去检查CAD源文件。记住,垃圾进,垃圾出(Garbage In, Garbage Out)。
总结一下,CAD文件转geo文件不是简单的格式切换,而是一次数据清洗和重构的过程。别指望一键搞定,那都是骗小白的。你要做的是:检查坐标、清理图层、选对工具、验证结果。这四步走稳了,你的数据才能经得起推敲。
别再问有没有免费的傻瓜式软件了,真正的免费是你自己的细心和耐心。希望这篇干货能帮你在接下来的项目中少踩坑,多拿单。毕竟,在这个行业,靠谱比什么都重要。