从CAD到shp

您所在的位置:网站首页 cad怎么输出点坐标 从CAD到shp

从CAD到shp

2024-01-17 18:13| 来源: 网络整理| 查看: 265

如果还有别的路走,请不要轻易走这条路,特别是位置精度要求高的数据,因为精度无法控制。

在很多的GIS项目中,应用最多的矢量数据可能就是shp、geojson格式,但是,客户给的地理数据总是千奇百怪的,比如CAD数据,并且是没有坐标系的CAD数据!那么如何从CAD数据得到shp数据格式呢?下面将一步一步介绍,如果有大佬有更好的方法,请不吝赐教,先谢谢了。

一、基本情况与处理思路

从客户给的DWG格式数据中提取管线数据,DWG数据有很多层,道路、河道等都有,如下图。

本来是想把道路、河道等图层删除后再导出DWG。然后用arcmap功能把dwg数据导出成shp,再配置坐标系,转换坐标系就完成了。虽然本人对AutoCAD软件很不熟悉,里面的很多名词概念都不懂,但是在AutoCAD里删除一个图层不是就是像在arcmap里、在PS里删除图层一样吗?so easy的事,于是安装了AutoCAD,开始要删除图层了,然而事情并非如此!

二、操作过程 1、保存为dxf文件

碰到的问题是,无法删除图层,无论删除哪个图层,都弹出下面这东西。

于是只能想别的办法,保存为dxf文件。

首先是把不需要的要素隐藏冻结起来,得到如下图:

然后另存为dxf,且打开设置在工具——>选项——>DXF选项。如下图:

这里要注意的是,一定不要导出为dwg格式,导出的dwg格式后,在arcmap中打开,确实是没有出现冻结的要素,但是,在导出为shp文件时,所有要素都会出来。

3、导出为shp

把导出有dxf文件在arcmap中打开,如下图:

打开Convert CAD Feature Layer工具,把CAD数据转化成shp格式。

至此,从CAD数据中得到了shp格式数据,但是还没完!因为我冻结的图层中还是有我不需要的要素!如下图:

图中的圆也是线,但肯定不是管线,我需要删除这些要素。

4、删除要素

使用信息查询工具发现,这些要互都有同一个字段,当然,不同数据有不同的字段名,如下图:

打开编辑工具,打开属性表。打开Select By Attributes工具,设置如下图:

点击Apply,选中所有RefName = 'SUB_BLK_20'的要素,然后按下delete键,重复这一步,直到删除所有不需要要素,关闭编辑,保存文件,至此要素内容就处理完成了,接下来是处理坐标系了。

5、坐标处理

如果客户能给到CAD数据的坐标系,那真是太好了,设置shp数据坐标系就行了。如果没有,那就只能按下面的方法了,因为该方法是强制变换匹配,可能有很大误差。

没有坐标系,但是我们知道CAD数据肯定是平面直角坐标系,那就把它强制设定为3857坐标系(这里就导致了误差)!如下图:

再把坐标系统转换成4326坐标系,此时,得到的数据坐标位置当然是错的。然后在地图上找到同名点坐标。计算出同名点x,y的差值(正确的减不正确的,shp的坐标是不正确的)。再打开编辑工具,选中所有要素。点击move,如下图:

填入上面计算出来的x差值和y的差值,回车,等计算完成,这个过程有点费时间,耐心等待,完成后保存,这个时间也有点长,耐心等待。至此,我们已经把数据平移到大致的位置上了。上面说了,我们的CAD数据坐标系是强制设定为3857,再转成4326的,与真实的数据坐标系相差很大,变形也是无法避免的。所以下面坐标校准是很关键的。

在地图上找到大约6个同名点,按下面格式记录到txt文件中

在shp文件编辑状态下,菜单栏右键,选择空间校准工具,好下图

设置校准数据为全图,如下图:

选择调整文件为,刚才编辑的txt文本。link,如下图:

等待完校准完成后,得到了shp格式文件。从CAD数据转换成shp文件的过程完成。

三、总结

从整个操作过程中可以看出,误差是不可避免的。导致误差的原因有两个:(1)强制设置CAD数据坐标系为3857。这是根源。(2)里面有很多人为的导入误差。同名点坐标获取中,鼠标位置的精度直接影响转换后的数据坐标精度。所以在获取同名点坐标时,最好把地图放大到最大级别。(3)不要轻易使用该方法,特别是位置精度要求高的项目。因为精度问题无法控制。如果没有别的方法,也不失为一种好的方法!还好,我处理完的数据,精度达到了要求。如果有更好的方法,请留言!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3