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线转面的方法的更多相关文章

  1. 【转】ArcGIS 创建切片缓存方法工具总结

    ArcGIS 创建切片缓存方法工具总结 http://wenku.baidu.com/link?url=Bm8AkmcJBzfiyat9N_Me6vlfSHEDCC_D1qBk5IB4X4CIDeKI ...

  2. 多线程之join方法

    join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方 ...

  3. VS2012中丢失ArcGIS模板的解决方法

    VS2012中丢失ArcGIS模板的解决方法 由于ArcGIS10.0(for .NET)默认是用VS2010作为开发工具的,所以在先安装VS2012后装ArcGIS10.0 桌面版及ArcObjec ...

  4. JS关闭当前页面的方法

    JS关闭当前页面的方法 一.不带任何提示关闭窗口的js代码 1 <a href="javascript:window.opener=null;window.open('','_self ...

  5. CubieBoard开发板不用ttl线也不用hdmi线的安装方法

    本文重点在于CubieBoard开发板系统的初始化安装,并且不用ttl和hdmi线,开机就可以远程ssh进系统.本文适合没有配线的同学参考操作.事实上,无论有没有ttl线,按照本文的方法安装效率都是一 ...

  6. ArcGIS学习记录—Arcgis中点、线、面的相互转换方法

    本文使用的工具在Arctoolbox.Data Management Tools.Features (一)面--面转线.面转点 面转线  Polygon To Line .Feature To Lin ...

  7. jQuery 表格中实现“删除线”的增进方法

    之前做了一个删除线的效果,就是类似这样的,在内容的中间加一条线. 但是又有点不同的是,这种删除线不是单纯的在文字之上,而是给一个Table中的一行加上这种删除线效果. 这里有两个方法,是在不同时期写的 ...

  8. 获取Linux进程运行在哪个CPU内核上面的方法

    首先,当某些时候,在一段程序或者借助第三方软件进行程序协助的时候,在性能的优化,以及程序bug的排除上面,可能会想知道该程序执行的进程被调度到了哪一个CPU内核进行工作,从而可以推断是否是受限于硬件还 ...

  9. [转]ps/2键盘线序识别方法

    from: http://www.360doc.com/content/11/0816/19/844619_140875056.shtml 经常看到有人询问ps/2线坏了,更换的时候如何测线序连线,或 ...

随机推荐

  1. Java abstract class 和 interface 的区别

    Java abstract class 和 interface 的区别 1. abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制 2. 以Door的抽象概 ...

  2. LeetCode OJ 116. Populating Next Right Pointers in Each Node

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  3. pandas中将timestamp转为datetime

    参考自:http://stackoverflow.com/questions/35312981/using-pandas-to-datetime-with-timestamps 在pandas Dat ...

  4. java的Map及Map.Entry解析

    Map<K,V>是以键-值对存储的(key-value), 而Entry<K,V>是Map中的一个接口,Map.Entry<K,V>接口主要用于获取.比较 key和 ...

  5. Android 7.0 UICC 分析(三)

    本文讲解UICCCardApplication /frameworks/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccC ...

  6. Parallel 试验

    using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Di ...

  7. Eclipse导入Maven项目,使用server 启动报错,class 找不到,

    问题发现: 1.导入maven 项目后,用server 启动,选择项中没有这个项目 解决: 说明server 没有把该项目当成web项目,需要设置 项目右键 properties  ---- proj ...

  8. nodejs的url参数获取

    express封装了多种http请求方式,我们主要使用get和post两种,即qpp.get和qpp.post.qpp.get和qpp.post的第一个参数都为请求的路径,第二个参数为处理请求的回调函 ...

  9. Windows XP发行12周年,我正步入中年,你已垂暮

    2001年10月25日,Windows XP正式全球上市!作为Windows 2000的升级版本,XP拥有大量新的功能:新的用户界面.防火墙整合等,这些都大大的增强了系统的易用性和安全性.而微软将于2 ...

  10. LINQ - 在Where條件式中使用in與not in

    希望对大家在以后的项目中能用到,我也是在项目中碰到了这个问题: 算算時間,接觸LINQ也有一個月的時間了,可以算是落伍兼新生,不過最近在寫專案的時候,遇到了在LINQ的Where條件式中要如何使用in ...