ARCGIS教程 第四章 属性表的编辑、连接
- 格式:doc
- 大小:1.29 MB
- 文档页数:8
ArcGIS如何将表连接到空间数据上当我们有一些空间数据和一些业务数据(表),希望把业务数据和空间数据连接起来时,可以采用ArcGIS Desktop进行操作。
ArcGIS的连接是基于属性的一个公共字段,将两个数据进行合并,可以是要素类与要素类的合并,也可以是表和要素类的合并。
通过属性连接,将另外一个表或者要素类的信息与目标要素类进行合并,看起来就像是一张表一样。
然后利用新增的属性信息进行数据的查询、显示、分析等操作。
具体操作:1. 打开geoo.mxd2. 分别查看ghyd1和ghyd2的属性表。
在图层上右键,选择“打开属性表”:ghyd1的属性如下:ghyd2的属性如下:可以看到两个图层是属性表中的公共属性“DKBH”和“地块编号”,两个字段中的内容完全一样,又能分别在各自的图层中保证各个数据的唯一性,所以我们选择它做“连接字段”。
3. 想要把ghyd1属性表中的属性连接到ghyd2中,则右键点击ghyd2,选择“连接和关联”——“连接”,打开“连接数据”窗口。
按照上图设置好在连接时需要的各个选项,主要关注两个连接字段的选择、待连接表的选择。
其中,保留所有记录表示ghyd1属性表中的所有属性都会在ghyd2的属性表中显示出来;仅保留匹配记录表示只保留ghyd1里面有但是ghyd2里面没有的属性项。
确定之后,点击“验证连接”查看连接汇总情况:可以看到151个记录有151个已经匹配好了。
依次点击“关闭”和“确定”,关掉连接窗口。
4. 此时再ghyd2的属性表,可以查到已经连接上的属性信息如下:要素类和要素类的连接已经完成。
表和要素类的连接方法一样,要注意找好用于连接的字段。
第四章属性表的编辑、连接、维护1 属性表的一般编辑1.1 表的新建图4-1 ArcCatalog 操作界面表的新建要用ArcCatalog,通过Windows / 开始/ 程序/ ArcGIS / ArcCatalog启动(因软件安装的差异,路径可能不同),和Windows 的资源管理相似(见图4-1),在左侧窗口,可找到本章练习临时文件的存放目录D:\gis_ex09\ex04\temp,点击窗口上侧标签Contents,在右侧窗口的空白处,点击鼠标右键,出现快捷菜单,选择New/dBASE Table,表示在当前目录下建立新表,默认表名是New_dBASE_Table,用键盘将表名改成ld_far。
再次选择刚新建的表,点击上侧标签Preview,可以看到该表中包含了两个由系统自动创建的字段,第一个为OID,用于自动标识不同记录,不允许用户输入、修改数据,第二个为Field1,接受用户输入数据。
选择菜单File / Properties,出现dBASE Table Properties 对话框,点击标签Fields,出现字段编辑对话框,准备为该表增加2 个字段。
一般的方法是在Field Name 列下用键盘输入字段名,回车后右侧Data Type 列中出现该字段的默认数据类型,利用下拉表可改变数据类型,如果要改变字段长度,在中间Field Properties 框中修改,本练习要求输入2 个字段:Fields Name(字段名):landuseData Type(数据类型): Text(字符型)Length(字段长度):2Fields Name(字段名):FARData Type(数据类型): Float(浮点型)Precision(占用长度):3Scale(保留小数位数):1如果认为某个字段是不需要的(如Field1),可以用鼠标点击该字段名左侧的小方格,使其变成黑色,右侧的Data Type 项也同时变成相反的黑白色,按键盘Delete 键,该字段就被删除。
一:arcgis属性表与excel建立连接:
1):原始数据属性表如图:
excel表数据如下:
2)现要建立属性表soilID与excel的土属编号的关联:
打开连接表:并如下操作:
在1处选择属性表连接字段,2处选择excel表所在的sheet,3处选择excel 表中连接字段
完后单击OK。
结果如图:
二:对连接进来的属性进行修改:
当启动编辑时会发现添加进来的字段不能编辑,很正常,因为添加进来的字段属于excel表,不属于属性表,当然不能编辑了,基于这,我想可以把excel的字段转化为属性表的字段。
(直接导出数据就可了,不能编辑状态链接excel表的情况下导出新的shp文件,下面的做法可不管)
具体做法是添加一个字段,使其字段类型和excel字段类型一致,然后启用Field Calculator,如下图:
这样excel表字段就会添加到属性表里,如此把所有字段添加进来,然后移除连接,再启动编辑就可以对所有字段进行编辑。
三:属性表导出为Excel,
可以先导出为dbf文件,再转化为Excel,但是我没安装Access,如是采用另一种方法:
先在属性表里,将属性表导出为txt文件。
下面就可以在Excel中操作了,进入导入数据向导,找到刚导出的txt,一直下一步,直到下面选择分隔符时:
然后一直下一步,直到完成OK。
实习二基于空间位置的连接1.点——点1.汇总连接2.距离连接2.点——线1.汇总连接2.距离连接3.点——面1.汇总连接2.距离连接4.线——面1.汇总连接2.距离连接5.面——面1.汇总连接2.距离连接6.思考注意:SPATION JOIN 基于平面距离,所以必须PROJECT,在LAYERS中设置动态投影动态投影1.点——点属性表:City4Centroid1.汇总连接1. CITY4_CENTROI2.CITY 4_CENTROID _SUM这个命令只能 得到在源数据中距目标数据最近的的点的数目,却不能得到具体是哪写点(源数据),至于统计,只是将count 对应的源数据点的数值属性统计后,添加到新数据表中2.距离连接1.CITY _CENTROID _DIST这些属性是由count 对应的记录的数值属性的统计信息将centroid的属性添加到city中距离连接和near命令作用非常相似,均为寻找距目标数据点最近的源数据点,并将其属性添加到目标数据的复制图层属性表中,且计算距离,添加了distance 字段3.根据以上推断,centroid-city count_ 总和为3249,且最大值大于1记录数为51(同目标图层)记录数51Count和为3149Centroid_city_dist记录数为51Fid-2 为最近点的fid和推测完全吻合2.点——线声明:notes 并非是节点数据,有图为证RoadNotes数据1.汇总连接1.ROAD_NODESPOINTS TO ine从源数据到目标数据的选择,有两种模式,相交和最近Closested时,同一个点位于两条线交点时,距离均为零,即被使用了两次然而:当反过来连接时Node_road推测:结果为count结果有零值不同与cloes t使用point to line 有两种方式,interest 与 closested ,前者计算和线和点相交,而后者计算点距那条线最近,这是,就会出现多可能问题,点距两条线距离相等,在统计时,被多计算使用 line to point 是,只计算相交的2.距离连接Node_road_dist可以看出位于道路上的点,距离为零,可以看出,和near结果相同(上图的圈点)最近线只是83号吗?????为什么一个点只对应一条线这个也和near命令相同3.点——面State数据Centroid数据1.汇总连接1.STATE-CENTROID求落在面里的点的个数,由于centroid是state的质心,因此应该每一个面对应一个点,基count 值为12.CENTROID_STATE3.距离连接State-centroid_distFalls inside,将点所在的面字段添加到点数据中It closest ti it就是距离连接从上面的数据可以看出,polygon2point有两种方式(closested和fall inside),其实也是point到polygon的两种关系,相反point2polygon只有一种(fall inside)4.线——线RoadFew-road1.汇总连接1.FEWROED_ROAD2.ROAD_FEWROADLine2line计算和线相交的线(包括重合的),所以count综合远大于源数据个数,且两种连接count总和相等2.距离连接1.R OAD_FEW_SUB这个指令会将few中属于road的线属性添加到road中3.FEW_ROAD_SUB4.线——面Few_roadState1.汇总连接1.FEW_STATE将和面相交的线数据统计后,添加到面数据中2.STATE_FEW3.距离连接1.FEW_STATE这个选项只将完全落入某一面的面要素属性添加至线数据closeeted4.面——面SmallregionState1.汇总连接1.STATE_REGION一个面与两个面相交,被使用了两次可以计算共有(10-6)/2 与两个面相交2.REGION-STATE2.距离连接1.STATE_REGION_DIST由于源数据并未完整包含目标数据的要素,所以fid 均为03.REGION-STATE——DIST由于这两者两个图形并未完全落入目标数据的任意一个面内,所以fid 为零5.思考汇总连接:相当于对源数据按某一指标(如距离最近)进行分类,将其分类数据的统计信息添加到目标数据对应的记录上(例d中1,2点相较s中的其他点而言,距f点最近,故将其归于f,将这两个点的统计信息添加到f记录)距离连接:相当于near命令变体,也是按照某一指标执行near命令这两个指令,先将目标数据复制一次,再将得到的数据直接添加到复制数据中,没有对目标数据的改变。
ArcGIS的属性连接是基于一个公共字段,将两个数据进行合并,可以是要素类与要素类的合并,也可以是表和要素类的合并。
通过属性连接,将另外一个要素类或者表的信息与目标要素类进行合并,看起来就像是一张表一样。
然后利用新增的属性信息进行查询、显示、分析等操作。
具体操作:
1.打开WGS_84.mxd
2.分别查看省级行政区划点和省级行政区划面数据的属性表。
在图层上右键,选择“打开属性表”:
省级行政区划点数据的属性如下:
省级行政区划面数据的属性如下:
打开Excel表格数据浏览一下,看到里面的数据是2010年-2012年的各省生产总值和增长指数数据。
3.右键点击省级行政区划点要素,选择“连接和关联”——“连接”,
打开“连接数据”窗口
省级行政点要素和Excel中都有各省的名称,因此选择数据中的名称字段进行连接。
在连接数据中,选择“NAME”字段作为连接要基于的属性字段,在2中点击旁边的文件浏览,选中要连上的Excel表,这里要选择Excel表里的sheet表即“地区生产总值(亿元)$”:
选择完成后,设置如下图:
点击“验证连接”查看连接汇总情况:
可以看到32个记录有31个已经匹配好了。
依次点击“关闭”和“确定”,关掉连接窗口。
4.此时再打开省级区划点要素的属性表,可以查到已经连接上
的属性信息如下:
可以看到Excel中的数据已经连接到点要素上了。
ARCGIS属性数据的连接功能和关联功能ArCMaP中可以实现属性表的连接与关联,属性数据合并时可以依据字段名称进行,也可以依据空间位置进行。
当两个属性表中的相关字段具有一对一或多对一关系时,可以应用合并连接操作;当两个属性表中的相关字段具有一对多或多对多关系时,就只能应用关联操作。
合并又分为依据公共属性合并属性表和依据空间位置合并属性表。
其中有几何位置的数据层数据既可以依据公共属性合并属性表,也可以依据空间位置合并属性表,而纯表格数据只可以依据公共属性合并属性表。
1 •依据公共属性合并属性表依据公共属性合并属性表就是按照属性表之间共同的属性字段及其属性值,实现属性表的合并。
所以其首先要求公共属性具有相同的属性类型,如字符型、数字型等。
依据公共属性合并属性表具体的做法如下:(1)在ArCMaP目录内容表中,右击要连接的数据层,在弹出的快捷菜单中选择"连接和关联T连接"命令。
此时弹岀"连接数据"对话框,如图7.94所示。
(2)依据公共属性合并属性表需要在"需要把什么数据连接到当前图层"下拉列表框中选择"从表中连接属性"选项。
(3)设置选择当前图层中要进行连接的字段、"选择要连接到当前图层中的表,或者从硬盘上打开数据表",以及"选择表中需要进行连接的字段"等项。
(4)在对话框中单击"高级"按钮,弹出"高级连接选项"对话框,如图7.95所示。
(5)在其中可以选择"保留所有记录"或者"只保留匹配的记录"。
如选择"保留所有记录"单选按钮,则保留合并后的所有记录;如选择"只保留匹配记录"单选按钮,则只保留匹配的记录。
其具体含义可以参考图7.95中的解释说明。
选择后单击"确定"按钮,回到"连接数据"对话框。
ArcGIS操作全记录之属性关联(一)当你默默地一单元格一个单元格地为图形输入属性的时候,其他人正在用高效的方式解决问题!(不是说你傻,虽然你就是)一、基于属性的关联操作流程:ArcGIS->windows->table of content(TOC)->图层名右键jion工具或Arctoolbox->data management tools->joins->add join注:关联只是临时的,图层关闭后不会保存关联上的属性,但你可以点击图层右键data->export导出为一个新层1. 建立关键字要将属性表(如excel表)中关联到图形中,首先要建立图形与属性之间的一一对应关系,所谓一一对应并不是要求图形有多少块属性记录就要有多少条,而是要求关联所依据的字段能够唯一标识图形和属性记录,例如,如果你想通过“编号”字段实现图形属性的关联,编号为A002图形只能有一个,同样属性记录“编号”字段中A002也只能出现一次(如果图形中有一个A002,而属性记录中有多个A002,在属性表中第一次出现的A002记录将会被关联),要实现这一目的,你首先需要检测拟关联字段是不是具有唯一标识码的特征,检测过程可以通过excel的“数据透视表”功能和ArcGIS的属性表“summarize”工具实现,其实就是统计下它出现的次数,出现一次的就是正常的。
如果唯一一个可用来关联的字段不是唯一标识码,则需要对图形数据和属性数据建立一个新字段,并对重复编码进行人工判读,重复的A002可以用A002-1、A002-2……去表示,最后做到图表一致。
注意事项:关联字段大小写要一致、字段中不要有空格(出现上述问题可以用ArcGIS的属性表field calculator面板中的String 里的函数实现相互转换,前提条件是你需要用ArcCatalog建立一个personal geodatabase(以下简称mdb,它实际上就是access),将属性表导入,因为ArcGIS无法实现对excel表的编辑,但可以编辑mdb中的属性)2. 记录单行一行就是一行(呵呵,大白话,听得懂不),意思就是呢,去掉excel乱七八糟的表头,最重要的一点,不要出现一个合并的单元格对应多行的情况。
编辑属性数据的几种方法在Arc Map中对地理数据进行编辑,不仅可以对其几何信息进行编辑,同时也可以为其属性信息进行编辑。
一般的属性表中既包含了系统预设的一些字段,还会包含用户自定义的字段,而我们进行编辑的只能是用户自定义的字段。
根据要素是否已经创建,可调用不同的工具完成属性信息的添加、更改或删除。
1 为已有要素添加或更改属性值当需要进行编辑的地理数据的几何信息已经存在并且不需要更改时,我们采用以下2种方法对要素的属性信息进行添加、修改或删除。
1.1 利用表窗口GIS数据包含的属性信息都记录在表中。
每个表格的基本结构都相同,由行和列组成,定义行为一条记录,定义列为一个字段,两者的交叉点是一个要素的某个属性。
表中的属性值可单独进行添加或更改,也可批量更改赋值。
1.1.1 单个赋值利用表窗口为单个要素添加或修改属性值。
步骤:a) 启动编辑会话,编辑(Editor)工具条下拉菜单选择开启编辑(Start Editing);b) 右键单击要编辑的图层,选择“打开属性表”(open attribute table);c) 找到需要添加或修改的字段以及对应的记录,手动输入单个属性值,如图1。
图1 表窗口单个赋值1.1.2 批量赋值利用“字段计算器”进行批量赋值,前提条件是两个字段的字段属性必须遵循一定的规则(短整型、长整型、双精度、单精度都可向文本复制,但是文本复制不到数值中)。
步骤:a) 启动编辑会话,编辑(Editor)工具条下拉菜单选择开启编辑(Start Editing);b) 右键单击要编辑的图层,选择“打开属性表”(open attribute table);c) 右键单击需要添加或修改的字段名,选择“字段计算器”(Field Calculator);d) 在“字段计算器”(Field Calculator)对话框中利用VB脚本语言或Python语言编写语句,既可以直接在表达式文本框中输入较为简单的表达式(如图2),也可以在代码框中输入较为复杂的表达式以执行高级计算;e) 点击确定(OK)后可在属性表中查看计算结果(如图3)。
1ARCGIS属性数据的连接功能和关联功能2ArcMap中可以实现属性表的连接与关联,属性数据合并时可以依据字段名3称进行,也可以依据空间位置进行。
4当两个属性表中的相关字段具有一对一或多对一关系时,可以应用合并连5接操作;当两个属性表中的相关字段具有一对多或多对多关系时,就只能应用6关联操作。
7合并又分为依据公共属性合并属性表和依据空间位置合并属性表。
其中有8几何位置的数据层数据既可以依据公共属性合并属性表,也可以依据空间位置9合并属性表,而纯表格数据只可以依据公共属性合并属性表。
101.依据公共属性合并属性表11依据公共属性合并属性表就是按照属性表之间共同的属性字段及其属性值,12实现属性表的合并。
所以其首先要求公共属性具有相同的属性类型,如字符型、13数字型等。
依据公共属性合并属性表具体的做法如下:14(1)在ArcMap目录内容表中,右击要连接的数据层,在弹出的快捷菜单15中选择"连接和关联"|"连接"命令。
此时弹出"连接数据"对话框,如图7.94所16示。
17(2)依据公共属性合并属性表需要在"需要把什么数据连接到当前图层"下18拉列表框中选择"从表中连接属性"选项。
19(3)设置选择当前图层中要进行连接的字段、"选择要连接到当前图层中20的表,或者从硬盘上打开数据表",以及"选择表中需要进行连接的字段"等项。
21(4)在对话框中单击"高级"按钮,弹出"高级连接选项"对话框,如图7.95 22所示。
23(5)在其中可以选择"保留所有记录"或者"只保留匹配的记录"。
如选择" 24保留所有记录"单选按钮,则保留合并后的所有记录;如选择"只保留匹配记录" 25单选按钮,则只保留匹配的记录。
实验四空间数据的属性编辑
实习要求: 1 理解图形数据与属性数据的关系
2 掌握属性数据输入方法
3 掌握属性数据的编辑方法。
实验过程——以点要素的属性编辑为例:
一字段的添加
1 在‘Table Of Content’中选中‘点要素’,右键选择‘Open Attribute Table’,如图1,打开点要素的属性表,如图2所示:
1
图
2 在点要素的属性表中,点击Table Option 下拉菜单,选择‘Add Field …’选项,如图3,打开Add Field 属性表;
3 在Add Field 属性表中,‘Name ’项输入‘类型’,用以记录点要素的类型,‘Type ’项在下拉菜单中选择‘Text ’,如图4所示,单击OK 即完成‘类型’字段的添加;
4 用同样的方法再添加一个“名字”字段,Type 仍然选择‘Text ’。
图
3
图 4
二属性数据的输入
1 在ArcMap中启动编辑;
2 在点要素的属性表中,按照点的ID号,依次选择每一条记录,其对应的图形数据会在图中高亮度显示出来,然后将点要素的类型和名称输入属性表,如图5所示:
图 5
3 输入完后,注意保存。
三属性数据的编辑
属性数据输入的过程当中,如果发现有错误之处,可以直接选中对应的记录进行修改。
第四章属性表的编辑、连接、维护1 属性表的一般编辑1.1 表的新建图4-1 ArcCatalog 操作界面表的新建要用ArcCatalog,通过Windows / 开始/ 程序/ ArcGIS / ArcCatalog启动(因软件安装的差异,路径可能不同),和Windows 的资源管理相似(见图4-1),在左侧窗口,可找到本章练习临时文件的存放目录D:\gis_ex09\ex04\temp,点击窗口上侧标签Contents,在右侧窗口的空白处,点击鼠标右键,出现快捷菜单,选择New/dBASE Table,表示在当前目录下建立新表,默认表名是New_dBASE_Table,用键盘将表名改成ld_far。
再次选择刚新建的表,点击上侧标签Preview,可以看到该表中包含了两个由系统自动创建的字段,第一个为OID,用于自动标识不同记录,不允许用户输入、修改数据,第二个为Field1,接受用户输入数据。
选择菜单File / Properties,出现dBASE Table Properties 对话框,点击标签Fields,出现字段编辑对话框,准备为该表增加2 个字段。
一般的方法是在Field Name 列下用键盘输入字段名,回车后右侧Data Type 列中出现该字段的默认数据类型,利用下拉表可改变数据类型,如果要改变字段长度,在中间Field Properties 框中修改,本练习要求输入2 个字段:Fields Name(字段名):landuseData Type(数据类型): Text(字符型)Length(字段长度):2Fields Name(字段名):FARData Type(数据类型): Float(浮点型)Precision(占用长度):3Scale(保留小数位数):1如果认为某个字段是不需要的(如Field1),可以用鼠标点击该字段名左侧的小方格,使其变成黑色,右侧的Data Type 项也同时变成相反的黑白色,按键盘Delete 键,该字段就被删除。
字段OID 是内部的,不能删除。
检查属性表有OID,landuse,FAR 三个字段,按“确定”键结束属性表的结构定义,选择菜单File / Exit退出ArcCatalog。
1.2 添加记录启动ArcMap,打开文档\gis_ex09\ex04\ex04.mxd,鼠标右键点击data frame1,选择Active,激活数据框架,点击图标(Add Data),在\gis_ex09\ex04\temp 目录下找到属性表ld_far.dbf,双击添加。
如果在目录表中看不到,点击下部标签Source,在目录表中看到ld_far名称和图标,表示该表被添加到数据框架(Date Frame)中。
鼠标右键点击该表,在快捷菜单中选Open,该表被打开,该表是空的,只有列,没有行,在地图窗口的按钮条中点击图标(Editor Toolbar),弹出编辑器工具条,选择Editor / Start Editing,该表进入编辑状态,可以看出表的字段名从灰色变为白色,可以用键盘在表记录的单元(Cell)中添加数据,输入内容如下:landuse F A RC22.4C32.0C61.0E0.0G10.0M1.5R22.4S30.0数据添加完毕按回车键结束,在编辑器工具条中选用菜单Editor / Stop Editing,系统提示,是否保存编辑结果,回答“是(Y)”,编辑状态结束,属性表的字段名从白色变为灰色。
1.3 常用操作(1)添加记录或修改属性。
在ArcMap 中,用鼠标右键打开属性表,选用菜单Editor / Start Editing,使该表处于编辑状态,表中的字段名从灰色变为白色,用键盘添加记录或修改属性。
(2)结束编辑。
选用菜单Editor / Stop Editing,结束编辑,系统提示:是否保存编辑的结果,回答“是(Y)”,编辑结果被保存,回答“否(N)”,则放弃编辑的结果,表中内容恢复到编辑开始(Start Editing)之前。
编辑状态结束,表中字段名从白色变为灰色。
选用菜单Editor / Start Editing,该表再次进入编辑状态。
(3)增加字段。
表已打开,如果该表未退出编辑状态,选用菜单Editor / Stop Editing,在属性表显示框右下侧点击按钮Options / Add Field…,后续操作和ArcCatalog 中增加字段的操作一致。
(4)删除字段。
如果该表处于编辑状态,选用菜单Editor / Stop Editing,结束编辑。
鼠标右键点击要删除的字段名,弹出的快捷菜单,选择Delete Field。
(5)删除记录。
如果表未打开,选用Editor / Start Editing,该表进入编辑状态,鼠标单击要删除的记录左侧的小方格,该记录进入选择集,改变颜色,按键盘上的Delete 键,实现删除。
若要删除多条记录,借助Ctrl 键,连击左侧多个小方格,选定多条记录,使他们进入选择集,改变颜色,按键盘上的Delete 键,实现删除。
1.4 要素属性表的操作ArcGIS 的要素属性表(Feature Attribute Table)和一般属性表不同,它和要素类(Feature Class)存储在一起,在ArcMap 中,和专题图层(Layer)相对应,加载、删除图层,同时加载、删除对应的要素属性表。
在地图文档目录表中用鼠标右键点击图层名,选择菜单Open Attribute Table,就打开了该图层的要素属性表。
一般情况下不要添加、删除记录,容易引起记录和要素的不对应,其他操作和一般属性表相同。
2 表和表的连接建立表和表之间的连接,使查询的功能、内容得到扩展。
要连接两个表必须有对应的字段(称关键字段),字段名可以不同,数据类型、属性值应相同。
要连接的两个表中的记录,可能是“一对一”、“多对一”、“一对多”的逻辑关系。
ArcMap 提供二种连接方式:Join(合并)和Relate(关联)。
2.1 Join(合并)方式连接启动地图文档\gis_ex09\ex04\ex04.mxd,鼠标右键点击data frame1,选择Active,可以看到有一个图层“土地使用”(见图4-2),在目录表中用鼠标右键点击该图层,选择Open Attribute Table,要素属性表“Attribute of 土地使用”被打开,可以看到该表有LANDUSE 等字段。
在地图文档目录表中点击Source 标签,确认ld_far.dbf 表已存在(若不存在,按本章开始处的练习新建、加载、输入属性),用鼠标右键点击该表,选择Open,打开“Attribute of ld_far”。
调整属性表显示窗口的大小,能同时看清两个属性表(见图4-3)。
在地图文档的目录表中鼠标右键点击图层名“土地使用”,选择快捷菜单Joins and Relates / J oin…,弹出Join Data 对话框:图4-2 data frame1 的显示图4-3 二个属性表同时显示What do you want to join to:Join attributes from a table 和某一个表建立连接1. Choose the field in this layer that the join will take place:LANDUSE 下拉选择连接关键字段2. Choose the table to join to this layer,or load a table:ld_far 下拉选择,已加载的ld_far 表将被连接3. Choose the field in the table to base the join only:landuse 下拉选择,ld_far 中landuse 为连接关键字段。
按OK 键继续,提问是否要加索引,回答“No”,可以看到“Attribute of ld_far”被关闭,“Attributeof 土地使用”的右端增加了三个字段:ld_far.OID ,ld_nduse,ld_far.FAR(见图4-4),他们来自被连接的表。
Join 是使两个表在逻辑上合并,实际的数据储存仍相互独立。
Join 连接有时会失败,一般的原因是某个表或图层正在编辑,应选用菜单Editor / Stop Editing,退出编辑状态,再作连接操作。
图4-4 连接后的属性表在二表连接的基础上,还可进一步连接第三个表。
已有的连接也可以消除,鼠标右键点击已经建立连接的表名(或图层名),在快捷菜单中选择Joins and Relates / Remove join(s) / Remove all joins,各种Join 方式的连接被消除。
2.2 关联(Relate)方式连接启动文档\gis_ex09\ex04\ex04.mxd,激活data frame2,可以看到有一个图层“动迁地块”(见图4-5)。
在按钮条中点击(Add Data),加载属性表\gis_ex09\ex04\rsdt,在地图文档的目录表中,鼠标右键点击rsdt,选Open,打开后可看到该表有上百条记录,每条记录为一户居民的信息,字段PARCEL_NUM 为居民房屋所在地块的编号。
调整属性表显示窗口的大小,合适看清两个属性表:“Attribute of 动迁地块”和“Attribute of rsdt”。
到地图文档的目录表中,鼠标右键点击rsdt,选用快捷菜单Joins and Relates / Relate…,弹出的Relate 对话框:图4-5 data frame2 的显示1.Choose the field in this layer that the relate will take place:PARCEL_NUM 选择,rsdt 表中的PARCEL_NUM 2.Choose the table or layer to relate to this layer or select from file:动迁地块选择,图层“动迁地块”的要素属性表作为关联表3.Choose the field in the related table or layer relate:PARCEL_ID 选择,“Attribute of 动迁地块”中的PARCEL_ID4.Choose a name for the relate:Relate1 键盘输入,为该关联起个名称按OK 键确定,两个属性表显示外观不变,但在逻辑上实现了关联,再调整显示窗口的大小,除了能看清二个属性表,还能看清地图。
在基本工具条中点击图标(Select Features),在地图上选择一个多边形,可以看到“Attribute of 动迁地块”中有一条记录进入了选择集,在该属性表对话框右下侧点击按钮Options/ Related tables / Relate1:rsdt,可以看到Attribute of rsdt(动迁居民表)中的相关记录也同步改变颜色(进入选择集),这就实现了查询一个动迁地块,显示多户居民的功能(见图4-6)。