修复Shape区文件中的空洞, 源文件http://www.sunzx.net/archive/645.html。
怎样将Shape区文件中的空洞修补上??
比如说,有下面这样一个图层,其中的图斑有空洞,如图一所示。
图一
方法一:自动完成多边形(Auto-Complete Polygon)
这种方法适用于图斑中空洞比较少的情况,通过一个一个的手动修补即可完成,但是如果图斑空洞数量非常多,那么这种方法不适用。具体步骤为:
(1)将待修补图层开始编辑(Editor—>Start Editing)
(2)在Editor工具条上,从task下拉对话框中选择Auto-Complete Polygon。
(3)点击Editor工具条上的草图工具(Sketch Tool),在图斑要素的空洞上画一条穿过其的线,双击结束绘画,这时会发现原来的空洞被填补起来,只是是用两个图斑填充的。
(4)选中刚才生成的填补空洞的两个多边形,选择Editor—>Editor—>Merge,将两个多边形合并即可。
方法二:利用Geodatabase创建Shape的拓扑关系
在空洞数量比较多的情况下,方法一就不好使了,为了快速的修补所有的图版空洞,可以利用Geodatabase建立Shape文件的拓扑关系,通过图斑与图斑的拓扑关系一次将所有空洞修补好。具体方法如下:
(1)利用ArcCatalog,建立一个Geodatabase数据库,然后在数据库中建立一个数据集abc(Feature Dataset),将待修复的Shape文件导入刚刚新建的数据集中。
(3)在数据集abc上右击,选择New—>Topology(如图二所示),在新建拓扑对话框中设置拓扑规则为Must not have Gaps,点击下一步完成拓扑规则的建立并验证拓扑(Validate)。
图二
(4)将新建的拓扑规则添加到ArcMap的TOC窗口中,会提示是否将和此拓扑有关的要素文件添加进来,选择是。
(5)在Topology工具条上点击Error Inspector按钮,打开错误列表对话框,点击其中的Search Now按钮,搜索拓扑错误,在搜索出的错误中,忽略掉与空洞无关的错误,选中剩余的错误,在列表上右击Creat Feature,之后我们看到所有的要素空洞都被填充起来了。
这种方法同样有局限性,就是对于环形的空洞挖法完美修补。
方法三:利用Arc/Info Wordstation建立拓扑关系
虽然Workstation的命令让许多人都很头疼,但是不得不承认这是解决这个问题最好的方法。通过将Shape文件转为Coverage,然后重建拓扑,随后将Coverage再转为Shape文件。此种方法可以完美的将空洞填补起来。具体方法是:
(1)利用shapearc命令将shape文件转换为coverage。
(2)用clean命令对转换得到的Coverage重新建立拓扑关系。注意:在拓扑关系时要选择合适的容限值参数。
(3)利用arcshape命令将coverage数据转换为Shape区文件。
注:对于方法三在此就不提供命令的用法,具体可以查阅Arc/Info Workstation的帮助文件。