下面是从网上拷贝来的,大家还有更好的方法吗? dwg to shp 制作流程 引用:http://www.geochina.net/archiver/tid-664.html Dwg 图转换为Shp 图操作流程 一直搞AO二次开发,很少有时间来做数据处理工作。最近要把一些DWG图转换为SHP格式的文件,闲暇无事,就把操作过程总结了一下,与感兴趣的朋友分享。 我们将使用到如下的软件: AutoDesk Map 2004 ArcView 3.3 ArcGis WorkStation 8.3 (ArcToolBox) Visual Foxpro 6.0 (要安装的软件还真多呀!) 以下将分步讲解,懒得截图了,大家就将就看吧。 一、CAD 图处理 1.新建"A_完成编辑的DWG"文件夹; 2.打开待处理的DWG文件; 3.删除多余对象,如填充线,图廓外信息等; 4.编辑文本。将分散的文本集合成一个对象,如:"文" "明" "路" 三个对象合为 "文明路" 一个对象,将多余的两个注记文本删除; 5.封闭多边形。对于没有闭合的房屋、闭合的公路等多边形实体进行闭合检查及处理; 6.块重绘。对于块需要炸开再重绘,重绘对象所属的图层要与原来该块所属的图层一致; 7.确认编辑完成后,将文件另存为工作目录的"A_完成编辑的DWG"文件夹中,名称为默认的文件名; 8.如果还有需要进行初步处理的DWG文件,重复上述的2-7步。 二、接边及分层 1.新建"B_接边DWG"文件夹目录; 2.打开CADMap 新建工程,将当前工程保存在工作目录的"B_接边DWG"文件夹中,命名为"All.DWG"; 3.在"工程"区域的制图中,用Attach工具将处理好的所有单幅CAD图添加到工程中,先用Quick View 显示每幅图,再用 Zoom Extents 定位视图。 4.建立Current Query,选择 Location >>All,即定义查询区域为全图; 5.将单幅图Detach出去; 6.对查询结果进行编辑,处理图幅接边地带的地物; 7.以客户要求或制图的要求为标准,对地物进行分层;将公路、铁路等线状地物,地名注记、水系注记等文本注记,房屋等多边形依次分层。 8.保存图形。 说明: 以上的接边工作(3-5)也可以使用下面的方式来处理: 3.将所有需要接边的单幅DWG文件加载到CADMAP中。 4.对每一单幅,使其激活为当前编辑文件,使用 CTRL+A 命令选择所有的对象,点击复制命令,然后使用All.DWG激活为当前编辑图形,在图形中点击右键,选择"粘贴到原坐标"命令,将单幅图复制到All.Dwg中; 5.重复第4步,将所有单幅图都通过"Ctrl+A"->复制->粘贴到原坐标添加到All.Dwg中。关闭所有单幅DWG图形。 三、大地定向 1.新建"C_大地定向DWG"文件夹; 2.将接边后的图打开,然后另存在"C_大地定向DWG"文件夹中; 3.选定两个定位基准点,即定向控制点,一般选取在图幅左下角及右上角两个点,拾取基准点,获取其直角坐标系中的坐标; 4.使用高斯坐标转换工具,转换成大地坐标,以度为单位; 5.使用 AutoMap 中的 "Tools"->"Transform" 开始转换: 命令行: select<Layer> 选取转换的图层,或回车不选取;命令行:Layer to Transform 回车(默认全部层都转换),选取第一个基准点,输入新的大地坐标,选取第二个基准点,输入对应的大地坐标,确认后开始转换; 四、导出线层、点层及文本层等为Shp文件 1.新建"Shapes"文件夹; 2.确让要导出图层没有错误后,用 CADMAP >> Map >>Tools >> Export 工具将大地定向后的 CAD 图的点、线、文本注记层分别导出为对应的Shp 文件格式,输出的文件存储到"Shapes"文件夹中; 3.用Visual FoxPro 6 打开 "Shapes" 文件夹中各矢量文件的 DBF 文件,根据客户需要添加或修改字段,如 name ,textlabel等;经常用到的命令有 update 、modify 等... 4.可以对需要编辑处理的数据进行处理,如添加数据等操作; 5.重复每3-4步,处理所有需要处理的DBF 文件。 五、导出面层为Shp文件(线型) 1.新建"D_AutoMap输出dxf"文件夹; 2.在"C_大地定向DWG"文件夹中打开大地定向后的dwg文件,然后另存为 R12 DXF 文件到 "D_AutoMap输出dxf"文件夹,名称为All.dxf; 3.新建"E_ArcView输出Shp"文件夹; 4.用ArcView 3.3 打开 "All.dxf" 文件,使用 "Convert to Shapefile" 将 dxf 转换为 shp 文件并保存到 "E_ArcView" 文件夹,名称为:All.shp; 六、转换成 Coverag 文件(面) 1.用 ArcToolBox >> Shp to Coverage 工具将 All.shp 转换为 Line Coverage 文件格式: All_Cov; 2.用 ArcToolBox >> Clean 工具将 All_cov 处理为 Polygon Coverage文件格式: All_Cov_Clean; 七、转换为Shp 文件(面) 1.新建"F_ArcView 输出Top 后的Shp" 文件夹; 2.用ArcView 打开 All_Cov_Clean ,然后用 Convert to Shapefile 将其转换为 All_poly.shp 文件,并保存到"F_ArcView 输出Top 后的Shp" 文件夹中,关闭ArcView; 3.新建"G_字段修改后的Shp"文件夹; 4.将"F_ArcView 输出Top 后的Shp"文件夹中的文件复制一个到"G_字段修改后的Shp"文件夹; 5.用Visual FoxPro 6 打开 "F_ArcView 输出Top 后的Shp" 文件夹中的 All_poly.dbf文件; 6.根据客户要求增添或修改字段;并建立一个字段用于对Poly 进行分层,如: type 字段; 7.使用 update 表名 set type ="XX" 命令将 type 值全部赋为地物最多图层的描述,如:Building; 八、分层 1.新建"H_分层"文件夹; 2.将"G_字段修改后的Shp"文件夹中的文件复制到"H_分层"文件夹中; 3.用ArcView 打开"H_分层"文件夹中的shp 文件,并保存工程到该文件夹,名称为"分层.apr"; 4.按Type字段分层配置图例,参照"C_大地定向DWG"文件夹中的dwg文件对地物分层,将其type 字段值设为相对应的图层描述; 5.分层完成后,使用ArcView的查询工具将每一层查询出来,并用Convert to Shapefile 转换为对应图层的SHP文件格式,将转换出来的文件存储到"Shapes"文件夹中。 如果您找不到 ArcView 3.3 或 Arcgis Workstation 8.3 ,也可以使用ArcGis 9 来完成。时间有限,懒是配图,大家有兴趣的就将就看吧。使用ArcView 3.3 主要是考虑到软件体积比Arcgis9 小,而占用内存要少,命令也简单直接一点。不过我还是喜欢在ArcGis 9 + AutoCAD map 2004 + Visual Foxpro 6 来处理。 如: arcview 3.3 中的 Convert to shape 命令,可以用 arcmap 9 中的 TOC 视图中的
图层名称上击右键:
数据>> 导出数据
命令来完成;ArctoolBox 中的 Clean 命令,可以用arcmap 9 中的
菜单
窗口>>命令行
打开命令行操作窗口,并通过 clean 命令完成.... |