从CAD到shp

1 篇文章 0 订阅
1 篇文章 0 订阅

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

在很多的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)不要轻易使用该方法,特别是位置精度要求高的项目。因为精度问题无法控制。如果没有别的方法,也不失为一种好的方法!还好,我处理完的数据,精度达到了要求。如果有更好的方法,请留言!

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
软件介绍: 国土用地报备坐标换器请使用section导出的txt格式或excel另存为的csv格式文件本程序根据国土资源部拐点报备相关规定进行编写,目前版本只针对一个圈进行换,后续请加入内圈及外圈进行完善。程序主要功能:1、坐标格式换:支持txt格式及csv格式的坐标格式文件2、拐点坐标CAD成图:可将拐点坐标换成CAD图形,分 X,Y 及 Y,X 两种形式3、导出excel格式拐点坐标表(非CASS格式)本程序完全免费,在使用过程中,遇到问题可与作者联系或熟悉人员,反馈问题或获得技术支持使用方法以常用格式进行说明,主要从mapgis、AutoCAD、ArcGIS(苍穹软件)、excel格式进行说明。一、mapgis wl线文件换步骤:1、连接范围线成一个完全闭合的圈(技巧可以将显示首尾点打开再进行连接)。2、运行section,打开范围线文件(或直接打开mapgis工程文件,将线文件设置为编辑状态),点击1辅助工具-导入导出功能-导出线拐点坐标(TXT),并保存拐点坐标。此处需注意的是,请留意section程序下方状态栏,实际坐标(X与Y调换后)与图面坐标是否一致,如不一致请点击比例尺设置成1000或0,如实际坐标处显示为“请先设置比例尺”,则此时比例尺为0,无需进行设置。3、运行拐点坐标换程序,点击打开按钮,导入txt文本文件,并设置好相应参数。序号位数参数:如设置成3则格式为J001,如不填或为0时为J1,需注意的是如您点个数超过1000,则此处应至少填4或不填否则程序将提示位数溢出,重新设置再换即可。4、换完后可进行CAD成图及导出excel格式拐点坐标表(页面已进行设置可直接打印,别忘了填写项目名称)。二、AutoCAD文件换步骤:1、另存CAD文件为dxf(2000或R12)文件2、运行mapgis-图形处理-文件换-输入-装入DXF-将范围线图层保留,其他层可选择不进行换。3、装入dxf后,点击文件-保存线,以保存范围线,后面步骤同“一mapgis wl线文件换”三、ArcGIS(苍穹软件)文件换步骤:同AutoCAD换,装入文件时选装入SHAPE文件即可。四、excel文件换步骤:1、保证excel内表格内第二列与第三列为坐标值,第一列及后面列有无数据不影响。同时所有行(含首行)均需包含坐标值或为空行(空行时程序会自动跳过),切不可含文字或其他数据,否则换时程序会认为此处为0或相应的数值。2、将excel另存为csv格式文件,再进行换即可! 五、txt文件换步骤:保证txt内容格式为“任意内容,坐标值,坐标值,,,……”,第一个逗号与第二个逗号后为坐标值即可,第一个数值、第四个及后面数据任何内容均可。此处需注意的是逗号必须为英文半角符!其他需说明的问题一、程序设置有最大边长自检值项,此处设置的目的是防止在换过程中因不可预见因素导致坐标值出错,进行边长也计算出错,所以设置边长最大值进行检查。(经测试边长一般为50以下,一旦出错均为数位错误,出错时边长将达几万,故此处设置为200,亦可自定义)。二、本程序目前只针对一个圈范围线进行换,后续将进行完善!
通过多个方法将CADshpg格式 CADshp经常出现的问题是丢失属性数据,利用以下方法可以解决丢属性的问题: ① 把CAD存放目录和文件名全部改成英文,并且注意不能出现如:"-"、"/"等特俗字符,否则不能生成shp文件或者丢失属性数据; ② 打开ArcMap—ArcToolbox—Conversion Tools—To Shapefile 弹出对话框操作即可。 CAD中DWG格式换成SHP文件的方法默认分类 2009-05-13 08:18:58 阅读1069 评论1 字号:大中小 订阅 . 1.先换为dxf格式,再用国产软件中地MapGIS,为WT文件(MapGIS点文件)再注记属性,再用MapGISshp的点文件,文字在点文件属性中。在MAPGIS里,“文件换”菜单中有个“选择”菜单,里面有个“压缩存盘”的功能。把MAPGIS数据导进去后用数据压缩保存数据,然后再输出SHP就基本不丢失数据了。 2.ArcGIS9.2集成了FME, 集成在arctoolbox中的数据交互模块(Data Interoperability Tools)中 , 换后可能坐标系不正确。 3.用工具FME2008版,设置源的坐标系为Unknown,然后设置目标的坐标系换后坐标还是原来的坐标. 4.首先将CAD数据的dwg格式保存为dxf格式,(mapgis-文件换-输入DXF-输出SHP)用MapInfo Professional把dxf成tab文件,然后利用MapInfo的通用换器将tab文件换成shape文件,其中注记无法换,而且换时要注意坐标系是否正确. 5.把dwg另存为dxf,直接在arccatalog中直接点击右键export为shpCAD数据ARCGIS数据(SHP格式)技术中心 2010-06-24 14:33:43 阅读85 评论0 字号:大中小 订阅 .  如果希望在ArcGIS中读取CAD文件时是简单明了而非杂乱无章的,那么就需要先在CAD环境下进行简单的数据处理: 1、删除不需要的图形:只保留需要的图形,让文件精简一点,有的图层不需要,应该全部删除。 2、编辑有明显错误的图形:实际上在ArcGIS9.2中读取CAD文件时,一些交叉的线段将不会显示,非PL线段即使是封闭的也无法构成面。所以应该先令一些明显没有闭合的PL线闭合,打断交叉的线段,并删除一些无用的线段。 3、数据初步分层:将同一类型的数据保存到一个文件中,其中等高线为一个图层,高程点为一个图层,需要构成面状的地物和注记为一个图层,保证每读取一个CAD文件时不会有额外的难以辨别的信息。    选择将CAD文件换为shapefile文件的方法,以高程点文件为例: 启动ArcMap,点击“Add Data”按钮,添加高程点文件的Point类型,右键点击添加的图层,选择“Data”下的“Export Data”弹出对话框,设置“Export”为“All Features”,输出的文件路径和名字可以进行重新设置,点击“OK”完成换。 cad文件dwg格式 ArcGIS shp格式完整过程 1、cad文件有很多层,而我们只想要其中的某一层或几层 在层管理器中删除,常弹出不让删除的对话框 解决方案如下: 在cad中打开dwg或者dxf文件, 在文件菜单中选择另存为 格式选择为dxf,在保存对话框右上角选择工具/选项/dxf选项 将选择对象勾选 点击保存 再在试图中选中所要的对象,回车即可 2、将dxf文件另存为dwg格式 3、arcmap中dwg和shp格式换经常丢失大量信息 最好是在mapgis中换 具体如下: 图像处理/文件换 输入菜单/添加dwg文件 输出菜单/shp文件 CAD规划图换为MapInfo Tab以及ESRI shp格式数据 技术方案 最近因为项目的需要,需要将规划图中的内容配准到具有标准地理坐标系(WGS84)的地图上面,经过多次尝试,走过不少弯路后,终于找到了一个比较切实可行的方法。 在这里写出来,与大家讨论。 大家都知道,1:10000的电子地图数据(WGS84),我们可以通过购买得到。但是规划部门的规划图通常都是CAD格式的,如果要将他们集成到一起,数据换是必不可免的。一般情况下,CAD规划图在绘制时,都参照了某个坐标系,所以我们在换的时候,只要确定好控制点就行了。 废话少说,下面我把基本流程叙述一下,其中的部分步骤也是参照网友的成功经验。 1、将CAD规划图(*.dwg)换为AutoCAD R12/13格式的dxf文件。 一般情况来讲,利用AutoCAD或者Autodesk Map的另存为就可以完成该步骤,但是我在实际操作中,发现保存为低版本的dxf文件时,CAD老是未响应,然后死掉了。 在这里推荐Amethyst CADWizz 软件,下载地址http://www.cadwizz.com/,虽然是试用版,不过并不影响我们进行文件换,呵呵。很好用。换为R13/R12格式的DXF文件即可。 2、利用mapinfo中的import功能 换之前,首先应当知道图形中两个点的精确的平面直角坐标值及其经纬度坐标值。这两个点最好位于图形的左下角和右上角附近。 当利用Mapinfo所提供的“导入表”功能,将AutoCAD的dxf文件在Mapinfo中打开时,Mapinfo能对该dxf文件重新设置投影、并进行坐标换。如果dxf图形文件中包含了属性信息,则在换过程中Mapinfo可将原来的属性信息同时入到Mapinfo中。 选择所要生成的新地图文件的投影方式,输入dxf图形文件中两点的平面坐标值及其对应的经纬度坐标值。按“确定”后,Mapinfo 便会自动将非地球投影的dxf图形文件化成地球投影的Mapinfo地图,并使地图定位到相应的地球空间中,以使地图上的空间对象具有实际的经纬度坐标值。 如果用户的dxf图形文件上的所有图形对象已经具有了与地球投影下的经纬度坐标相等的平面直角坐标值,则换过程将更简单,只需要将dxf图形文件的投影改变成Mapinfo的地球投影就可以 3、import过程中进行投影换,并确定控制点。 4、处理ing。。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值