最近好多做GIS的朋友在群里吐槽,说把CAD导进GeoServer或者QGIS里,那线条跟面条一样乱成一锅粥。
我也踩过这个坑,当时为了赶项目,硬着头皮搞,结果坐标偏移得亲妈都不认识。
今天不整那些虚头巴脑的理论,直接上干货,聊聊怎么让 dwg导入geo 变得丝滑点。
首先,你得明白一个死理儿:CAD是绘图工具,GIS是分析工具,它们的底层逻辑根本不一样。
CAD里画个圆,它就是个视觉上的圆;GIS里它得是个多边形或者带精度的几何对象。
很多人第一步就错了,直接在CAD里画完图,也不检查图层,也不管坐标,直接另存为DXF。
这时候导进去,你会发现所有东西都挤在原点附近,或者坐标值大得离谱。
这里有个真实案例,我之前帮一个测绘队处理数据。
他们给的DWG文件,里面混杂了建筑轮廓、道路、甚至还有无关的标注文字。
直接转换的话,生成的GeoJSON文件巨大无比,浏览器直接卡死。
后来我们花了半天时间,把无关图层全冻结,只保留核心要素。
这一步虽然繁琐,但绝对是必须的,不然你的服务器扛不住。
再来说说坐标系统,这是最容易翻车的地方。
很多设计师画图时,根本不在乎投影坐标系,就用个默认的局部坐标系。
你要是直接 dwg导入geo,出来的数据在地图上飘在太平洋里,或者根本对不上地物。
解决办法很简单,在CAD里用UCS命令确认一下当前坐标系。
如果不知道是什么系,最好找甲方或者原始测绘单位要一份坐标转换参数。
哪怕只有几个控制点的坐标,也能通过仿射变换把整个图拉回正确位置。
别嫌麻烦,这一步省了,后面调试能把你折磨死。
还有个小细节,CAD里的多段线,有时候闭合不闭合,在GIS里差别很大。
有些线看起来是闭合的,其实端点没对上,差个几毫米。
在CAD里用PEDIT命令检查一下,合并一下,确保是真正的闭合多边形。
不然导成GeoJSON后,做面积计算或者缓冲区分析,结果全是错的。
我之前有个项目,就是因为没检查这个,算出来的绿地面积比实际少了百分之五。
老板当时脸都绿了,我也跟着挨骂。
所以,预处理环节,宁可多花一小时检查,也别省这几分钟。
关于工具选择,如果你数据量小,用QGIS的导入功能勉强够用。
但要是数据量大,或者对精度要求高,建议用GDAL命令行工具。
虽然命令行看着吓人,但脚本化之后,效率比图形界面高多了。
而且GDAL支持批量处理,你可以写个简单的Python脚本,一键转换。
别怕学新东西,一旦掌握,以后这类工作就是秒秒钟的事。
最后,转换完别急着上线,先用GIS软件打开看看。
检查属性表有没有丢失,几何形状有没有自相交。
这些细微的瑕疵,肉眼很难发现,但会影响后续所有的空间分析。
总之,dwg导入geo 这事儿,看似简单,实则步步惊心。
没有一劳永逸的方法,只有不断的检查和优化。
希望这些血泪经验,能帮你少走点弯路。
毕竟,咱们做技术的,不就是为了早点下班,少加点班嘛。
要是你还遇到什么奇葩问题,欢迎在评论区留言,咱们一起琢磨。
毕竟,独乐乐不如众乐乐,大家一起进步才是硬道理。
记住,数据质量是生命线,别为了速度牺牲精度,最后返工更累。
好了,今天就聊到这,我去喝杯咖啡醒醒脑。