mycad 发表于 2009-11-10 10:03:00

[讨论]dwg转shp文件

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

pyt5208 发表于 2011-5-8 11:28:46

cad->shp在线转换:http://www.gisfuwu.com/ConvertOnline.aspx

saiko008 发表于 2011-5-9 10:40:16

用FME呀

pyt5208 发表于 2011-5-9 15:18:32

FME二次开发不好弄
页: [1]
查看完整版本: [讨论]dwg转shp文件