ArcGIS线转面的方法
ArcGIS作为GIS软件中的龙头老大,其功能是非常强大的,但是如果作为一个初学者,其部分常用的重要功能不容易掌握,今天就讲一讲在矢量化时非常重要的功能:线转面。
ArcGIS在进行大范围的矢量化时一般很少直接画多边形,这是因为shape文件不具备拓扑,在处理多个相邻多边形时不方便,因此,一般是先用线把地类图斑勾绘出来,然后将线转为多边形。在ArcGIS中,将线转为多边形有三种方法:
1. Feature to Polygon
这种方法,顾名思义,就是要素转多边形。在ArcToolBox中,依次找到Data Management Tools—>Features—>Feature to Polygon,在弹出的对话框中设置好线要素文件以及生成的多边形存储的位置和文件名,点击确定即可。多边形生成结束后会自动添加到ArcGIS的TOC窗口中。

图一 Feature to Polygon位置
2. Polygon Feature Class from Lines
首先说明,这种方法需要ArcGIS Geodatabase的支持,也就是你的shape数据需要放在ArcGIS的Geodatabase中,Personal Geodatabase或File Geodatabase都可。在存储线要素的要素数据集(Feature Dataset)中,在空白地区右击,选择New—>Polygon Feature Class from Lines…,在弹出的窗口中输入生成面要素的名称,选择要生成面要素的线要素,往下看我们惊喜的发现了"Select a point feature class to establish attributes for the polygon feature"这句话,这就意味着在这里我们可以指定一个点要素文件,来建立面要素的属性。为什么说是惊喜呢?因为在矢量化的死后,很大一部分工作都是来为图斑赋属性(比如说土地利用类型),有了这个功能,我们在用线勾绘图斑时,可以新建一个点文件,每个图斑中画一个点,为其附上图斑应该赋的属性,这样在先转为多边形时就可以利用这个功能将点的属性直接赋予多边形,省却了我们大量的时间。

图二 Polygon Feature Class from Lines位置
3. Construct Features
这个还是首先要说明一下,实现这种方法,除了需要方法2中Geodatabase的支持外,还需要ArcGIS Topology模块(ArcGIS拓扑模块)的支持,方法是这样的:新建一个面要素文件,用来存储生成的多边形。将线要素和面要素同时添加到ArcGIS的TOC窗口中,在Editor工具条上点击Start Editing开始编辑,在Topology工具条上点击Map Topology(地图拓扑)按钮,在打开的对话框中将需要建立多边形的线要素选中,然后关闭对话框。在Editor工具条上将Target(编辑目标)设为新建的面文件,然后选择相应的线要素(注意:选中的这些线要素要能形成闭合的多边形才可以),这时Topology工具条上的Construct Features按钮变为可用,点击该按钮,弹出Construct Features对话框,在其中设置容差及其它选项,点击OK即可生成多边形。

图三 Constrct Features
比较3这种方法,第一种方法是最差的,因为其只能一次将所有的线全部转成多边形,且不能同时赋属性;第二种方法笔者个人认为是最好的,除了可以将线转为面,还可以同时将点的属性赋给面图斑;第三种方法笔者认为也不错,很灵活,想创建哪个多边形就创建哪个多边形,创建多边形后可以同时给它赋属性。
ArcGIS线转面的方法的更多相关文章
- 【转】ArcGIS 创建切片缓存方法工具总结
ArcGIS 创建切片缓存方法工具总结 http://wenku.baidu.com/link?url=Bm8AkmcJBzfiyat9N_Me6vlfSHEDCC_D1qBk5IB4X4CIDeKI ...
- 多线程之join方法
join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方 ...
- VS2012中丢失ArcGIS模板的解决方法
VS2012中丢失ArcGIS模板的解决方法 由于ArcGIS10.0(for .NET)默认是用VS2010作为开发工具的,所以在先安装VS2012后装ArcGIS10.0 桌面版及ArcObjec ...
- JS关闭当前页面的方法
JS关闭当前页面的方法 一.不带任何提示关闭窗口的js代码 1 <a href="javascript:window.opener=null;window.open('','_self ...
- CubieBoard开发板不用ttl线也不用hdmi线的安装方法
本文重点在于CubieBoard开发板系统的初始化安装,并且不用ttl和hdmi线,开机就可以远程ssh进系统.本文适合没有配线的同学参考操作.事实上,无论有没有ttl线,按照本文的方法安装效率都是一 ...
- ArcGIS学习记录—Arcgis中点、线、面的相互转换方法
本文使用的工具在Arctoolbox.Data Management Tools.Features (一)面--面转线.面转点 面转线 Polygon To Line .Feature To Lin ...
- jQuery 表格中实现“删除线”的增进方法
之前做了一个删除线的效果,就是类似这样的,在内容的中间加一条线. 但是又有点不同的是,这种删除线不是单纯的在文字之上,而是给一个Table中的一行加上这种删除线效果. 这里有两个方法,是在不同时期写的 ...
- 获取Linux进程运行在哪个CPU内核上面的方法
首先,当某些时候,在一段程序或者借助第三方软件进行程序协助的时候,在性能的优化,以及程序bug的排除上面,可能会想知道该程序执行的进程被调度到了哪一个CPU内核进行工作,从而可以推断是否是受限于硬件还 ...
- [转]ps/2键盘线序识别方法
from: http://www.360doc.com/content/11/0816/19/844619_140875056.shtml 经常看到有人询问ps/2线坏了,更换的时候如何测线序连线,或 ...
随机推荐
- 还是要好好研究开源的php
听说facebook是php写的,还是要静下心来好好研究一番的嘛,踏踏实实点点滴滴的做起来!加油
- jquery选择器 之 获取父级元素、同级元素、子元素
jquery选择器 之 获取父级元素.同级元素.子元素 一.获取父级元素 1. parent([expr]): 获取指定元素的所有父级元素 <div id="par_div" ...
- Unity3D中以任意格式获取时间(C# .net也可用)
最近楼主在开发中遇到了一个小问题 需要保存截图,同时把时间作为截图的名字存储 时间的保存格式为 2016-12-08 13:15:00 保存截图的流程就不说了,这篇博客只说一下以任意的格式保存时间. ...
- ABP JTable如何手动刷新子表数据
function getSubMaster() { _$masterTable.find('.jtable-child-table-container').jtable('reload'); }
- Light OJ 1029- Civil and Evil Engineer (图论-最小生成树)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1029 题目大意:一个发电站,给n座房子供电, 任意房子之间有电线直接或者间接相 ...
- SQL Server创建复合索引时,复合索引列顺序对查询的性能影响
说说复合索引 写索引的博客太多了,一直不想动手写,有一下两个原因:一是觉得有炒剩饭的嫌疑,有兄弟曾说:索引吗,只要在查询条件上建索引就行了,真的可以这么暴力吗?二来觉得,索引是个非常大的话题,很难概括 ...
- Java泛型 E、T、K、V、N
中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型) ...
- C#(asp.net )读取ASHX文件(一般处理程序)
c#后台获取asxh的返回数据,后台创建一个请求实例,获取请求实例的返回值 public string GetResponseByPost(string apiUrl, string queryStr ...
- 下拉tableView实现类似微信中带图的灰色背景
UIView *topView = [[UIView alloc]initWithFrame:CGRectMake(, -, ScreenWidth, )]; UIImageView *iconIma ...
- jQuery事件笔记
bind(eventType[,data],hanlder):eventType表示要创建的处理器指定事件类型的名称.可以使用空格分隔的列表指定多个事件类型.data(对象)调用者提供的数据,用来附加 ...