做测绘和GIS这行,谁没被CAD转GIS折腾过?以前我也觉得把CAD里的线条导进GeoServer或者ArcGIS就是拖个文件进去的事儿,直到上个月接了个老客户的急单,那是真把我坑惨了。今天不整那些虚头巴脑的理论,就聊聊我踩过的坑,还有怎么把 cad图形导入geo 这个动作做得既快又准。
先说个数据,很多新手以为CAD导进来直接就能用,结果发现拓扑错误率高达30%以上。为啥?因为CAD是绘图软件,它不管几何逻辑,只管好看;而GIS是地理信息系统,它讲究坐标、属性和拓扑关系。你直接把DWG文件拖进去,导出来的东西就像是一盘散沙,根本没法做空间分析。
我有个朋友,之前为了省事,直接在AutoCAD里把图层全关了,只留多段线,然后导出DXF。听着挺合理对吧?但实际操作中,他发现导进来的图形全是碎线,有的地方重叠,有的地方断开。最离谱的是,坐标系统完全对不上。他用的还是局部坐标,而项目要求是WGS84坐标系。这一来一回,光校正坐标就花了两天时间。这就是典型的“看似简单,实则深坑”。
再说说那个让我头疼的“cad图形导入geo”过程中的属性丢失问题。很多教程里没提这点,但这是最致命的。CAD里的图层名、线型、颜色,在导入GIS后,往往变成了一堆乱码或者默认值。比如,我把一个小区的楼栋图导进去,本来每个楼栋都有“楼栋号”这个属性,结果导完后,属性表里全是空的。这意味着什么?意味着你后面没法做查询,没法做统计,整个数据就废了一半。
怎么解决?我现在的做法是,在CAD里先把所有需要的属性做成字段,并且确保每个要素都有唯一的ID。然后,不要直接导DWG,而是先转成SHP或者GDB格式。这里有个小技巧,用QGIS或者ArcGIS的转换工具时,一定要勾选“保留属性”选项。别嫌麻烦,这一步能省后面好几天的功夫。
还有个坑,就是坐标系的问题。千万别信CAD自带的坐标系,那玩意儿大多是假的。你得先在CAD里用“测绘工具”或者插件,把图形校准到真实的地理坐标上。比如,你手头有个已知控制点,坐标是(450000, 3600000),你就得在CAD里把这个点移到这个坐标上,然后对整个图形进行缩放和平移。这一步做错了,后面所有数据都是歪的。
我对比过两种方法:一种是直接在CAD里画好,导出DXF,再导入GIS;另一种是在CAD里预处理,加上属性,转成SHP,再导入GIS。第一种方法快,但后续处理时间可能是前者的五倍。第二种方法前期慢,但后期几乎不用动。对于长期项目,我强烈建议用第二种。虽然听起来有点反直觉,但算总账,第二种更省钱省力。
最后,给大家提个醒,别指望软件能自动帮你搞定一切。cad图形导入geo 过程中,人工检查必不可少。导完后,打开属性表,随机抽查几个要素,看看属性对不对,看看线是不是闭合的,看看有没有重叠。这一步花不了十分钟,但能避免后面几天的返工。
总之,做GIS数据准备,耐心比技术更重要。别急着导,先理清楚逻辑。把每个环节都做到位,你才能享受到GIS带来的便利,而不是被它折磨得想转行。希望这些经验能帮大家在以后的工作中少走弯路,毕竟,时间就是金钱,对吧?