CAD文件按特征值转换为多个shp文件
-
选择显示字段并查看。
在ArcMap中加载roadline.dwg文件,忽视【未知的空间参考】警告,进入roadline.dwg polyline的【图层属性】对话框,单击【字段】选项卡,在【选择哪些字段可见】栏中先点击 ,取消所有字段,然后选中【Layer】字段,按【确定】键返回。此时查看roadline.dwg polyline的属性表则只剩Layer一个属性项了。
-
查询构建器。
打开并进入roadline.dwg polyline的【图层属性】->【定义查询】,单击【查询构建器】,输入:“Layer” Like ‘道路红线’,按【确定】返回,则道路线图层中仅有道路红线。
-
导出数据。
右键单击roadline.dwg polyline,在快捷菜单中选择【数据】->【导出数据】,按如下进行设置,按【确定】键,并将导出的数据roadside.shp加载到ArcMap中。
采用相同方法,将roadline.dwg polyline中的道路中心线导出为roadcnt.shp。
注意:导出完成后要将查询构建器清除。
导入CAD线实体,并检查数据质量。
运用ArcGis中的地理数据库拓扑。
建立拓扑
-
创建数据库。
在ArcCatalog中新建GeoDB文件数据库,在数据库中新建Road要素数据集,其坐标系为“投影坐标系”中的“Gauss Kruger->Xian 1980 3 Degree GK CM 120E”,XY坐标容差为0.001m。将roadnet.dwg polyline导入为roadnet.shp的线要素类,注意选择保留或舍弃的属性,若无保留,则可以看到新建的要素属性表中只有ID、Shape和Shape_Length三个字段。
-
新建拓扑。
在Road要素数据集上新建拓扑Road_topology,拓扑容差为0.01m,选择roadnet为参与拓扑的要素类,添加以下三条拓扑规则(不能有伪节点,不能有悬挂点,不能相交或内部接触),确认无误,按【完成】键,计算生成拓扑关系。立即验证,生成拓扑类Road_topology。
标记异常
-
异常显示。
新建文档,加载Road_topology,添加所有参与的要素类,可以看出有9处悬挂点错误是道路端点引起的异常。在内容列表中双击Road_topology,在弹出的【图层属性】->【符号系统】中,勾选【点异常】。
-
检查错误。
添加【拓扑】工具条,在编辑工具条中选择【开始编辑】,在【拓扑】工具条上单击【错误检查器】,按照如下进行设置,点击【立即搜索】,得到42个错误。列表中的错误与地图上的红点、红线一一对应。
-
标记异常。
单击每一条记录,地图上的红点变为黑点,如果判断为道路端点,鼠标右键单击该行,在弹出的菜单中选择“标记为异常”,该黑点会消失,该条记录也从错误检查器窗口中消失,这样的异常点共有9处,只有2处是不满足“不能有悬挂点”的拓扑错误,必须用手工修正。关闭错误检查对话框。
修正悬挂点
标记异常后,还剩两处悬挂点,是该连续的线未连接造成。(修正这类错误采用的方法是利用捕捉功能,在两个应连接的端点之间输入一条短线,或者用编辑折点的方法,拖动某个端点,使它捕捉到另一个端点上。)
修正方法:
- 延伸或未及错误:在错误检查器中右键点击对应错误,选择延伸或修剪一定长度(设置的是最大长度)来修正。修改完毕后,用【验证指定区域的拓扑工具】进行检查,现在是悬挂点变成了伪结点。
- 重复线错误:选中对应的重复线,将其删除。
批量修正方法:
- 点击工具栏中的修复拓扑错误工具,拉出一个选框,将所有的错误包含在里面,右击选择延伸、修剪,错误可以大大减少。ArcGis称改变的区域为脏区,可以在图层的符号系统中调出显示,可以通过【验证指定区域的拓扑工具】或【验证当前范围的拓扑】按钮,来验证脏区的拓扑,如无错误,则脏区消除。
消除伪节点、重复线、打断交叉线
使用【编辑器】工具条上的编辑工具 ,框选图层road上的所有线要素,选择【编辑器】->【合并】,按【确定】键,进入选择集的所有线要素都合并成一个要素。
选择【编辑器】->【更多编辑工具】->【高级编辑】,调出高级编辑工具条,用要素选择工具 选择合并后的唯一线要素,使用打断相交线工具 ,输入“拓扑容差0.1m”,按【确定】键,合并后的线要素在交叉点断开,可以看到图层road的线要素伪结点已去除、重复线也被删除,所有的线要素在交叉处被打断,成为独立的线段,表示拓扑错误的红色标记均消失。
用【验证指定区域的拓扑工具 】进行检查,可以看到仅有9处表示拓扑错误的红点,都是原先标注的悬挂点“异常”,其他的拓扑错误均不存在。保存编辑,停止编辑。
线要素生成多边形
启动ArcToolbox->数据管理->要素->要素转面,注意可以设置标注要素,按【确定】即得面要素。