第2章 快速入门教程
本章提要
●练习1:用ArcCatalog组织数据
●练习2:向地理数据库中导入数据
●练习3:创建子类和属性域
●练习4:创建对象间的关系
●练习5:创建几何网络
●练习6:为数据创建注记
●练习7:为地理数据库中的数据创建层
●练习8:编辑地理数据库
通过数据管理工具ArcCatalog创建一个地理数据库或增加一个数据库非常容易,不需要编写任何程序就能实现。ArcCatalog可用来浏览、储存、组织和发布数据。在ArcMap中查询和编辑地理数据库时——ArcMap用于编辑、分析和编辑地图——不需要定制任何代码,就能充分利用地理数据库。
在教程中,利用ArcCatalog创建一个地理数据库来模拟自来水设施网络(water utility netword)。将通过创建子类、有效性规则、关系和几何网络增加行为(behavior)到地理数据库中。利用ArcMap编辑已有的要素和增加其它要素到地理数据库时,会体会到在地理数据库中使用行为的好处。
本教程研究的区域是位于Alabama的Montgoney市的一个部分。这个地理数据库中包含大部分资料:表示一个自来水侧水管(water laterals)的一个Coverage,INFO表表示宗地属主(parcel owner)数据,我们需要将Coverage和INFO表导入到地理数据库中,然后修改属性以赋予其行为。
本教程通过ArcMap、ArcCatalog,掌握使用地理数据库的能力。可以在机器上根据自己的安排而无须其它辅助完成这本教程。本章教程包括8个练习,每个练习大约需要10-20分钟完成。
P16
本章将使用多个数据集。下面的表是对这些数据集的具体描述:
Coverage | 描述 |
Laterals | 自来水侧水管 |
INFO表 | 描述 |
Owner.dat | 宗地属主 |
地理数据库 | 描述 |
Montgomery | 包含了将要使用的Montgomery市的大部分数据 |
要素数据集 | 描述 |
Landbase | 上覆层数据 |
Water | 自来水网络数据 |
要素类 | 描述 |
Parcels | Parcel多边形 |
Road_cl | 道路中心线 |
Road_eop | 道路边线 |
Roadnames | 道路中心线注记 |
Dimensions | 度量要素 |
Distbmains | 自来水分配主水管 |
DistmainDiam | 自来水分配主水管注记 |
Fittings | 自来水网络装置 |
Gatevalves | 自来水阀门 |
Hydrants | 自来水消防栓 |
Pipencasement | 自来水管箱 |
Prodwell1 | 生产井1 |
Prodwell2 | 生产井1 |
Pumpstat | 泵站 |
Sysvalves | 自来水系统阀 |
Tanks | 自来水箱 |
Transmains | 传输主水管 |
transmainsdiam | 传输主水管注记 |
trtplant | 自来水处理厂 |
vaults | 自来水表拱顶 |
本教程中的数据由Alabama的Montgoney市水厂和污水公司提供,ESRI公司把这些数据简单化。Montgoney市不能保证这些数据的可靠性。数据是从不同的来源得到的,并且空间数据也不精确。对这些数据的更新或修改,恕不另行通知。
P18
练习1:用ArcCatalog组织数据
在开始学习之前,必须找到并组织需要的数据,这些操作将在ArcCatalog中完成。
连接数据
在ArcCatalog中,通过文件夹连接获取数据,当查看一个文件夹连接时,能很快地看到文件夹及所包含的数据源。现在,通过创造一个文件夹连接来组织数据。
1.双击安装在桌面的ArcCatalog快捷图标或开始菜单中的程序列表启动ArcCatalog;
2.单击connect to folder按钮,定位到安装教程数据的位置(默认情况安装在C:\\ArcGIS\\ArcTuTor\\BuildingaGeodatabase),单击OK,建立一个文件夹连接;
新的文件夹连接——c:\\ArcGIS\\ArcTuTor\\BuildingaGeodatabase——正显示在目录树中,通过连接能获取学习教程中的各种数据。
浏览数据
在开始修改地理数据库之前,浏览教程中的数据集。
1.单击在c:\\ArcGIS\\ArcTuTor\\BuildingaGeodatabase文件夹上的"+"号,查看包含在文件夹中的数据集,单击Preview项然后单击laterals图层来查看它的几何图形(geometry)。
P19
2.单击Montogomery地理数据库旁的"+"号,并双击每一个要素数据集查看其包含的要素类和关系类。单击其中每一个要素类,预览它们的几何图形;
3.单击owner.dat INFO表,注意浏览类型自动变为表,显示表的记录。该表包含有Montogomery地理数据库中宗地要素类属主的信息。在后面的练习中,将表导入到地理数据库中,并创建宗地和属主之间的关联;
将要完成的任务大多数是用ArcCatalog修改Montogomery地理数据库的表结构,然后将用ArcMap创建注记和编辑地理数据库。
现在开始第一个学习任务:导入数据到地理数据库中。
P20
练习2:向地理数据库中导入数据
在为数据增加行为之前,必须将其导入到地理数据库中。这里将导入两个数据集到Montogomery地理数据库中——laterals和owner.dat。laterals coverage包含了Montogomery自来水管线信息,owner.dat INFO表包含了宗地属主的信息,而相应的宗地要素已经存在于地理数据库中。
导入Coverage
1.在ArcCatalog中,右击在Montogomery地理数据库中water要素数据集,指向Import,再单击Coverage to Geodatabase;
使用Coverage to Geodatabase工具导入laterals coverage中的弧段到water数据集中。
这个工具来指定输入coverage、输入要素类和输出要素类,因为我们是通过鼠标右击一个要素类来打开这个工具,所以输出地理数据库“Montogomery”和输出要素数据集“water”已被填好了。
有多种方法来设置输入和输出要素数据集。可以在文本框中输入完整的路径名,也可以在ArcCatalog树选择一个数据集并拖动它到该文本框上。另外,可以单击Browser按钮,打开一个最小化ArcCatalog浏览窗口,选择需要的数据集。
在本教程中只要求简单地输入数据集的文件名和路径到相应的文本框。但是,用上面的方法,更加自由方便。
P21
1.在Input Coverage文本框中,输入c:\\ArcGIS\\ArcTuTor\\BuildingaGeodatabase\\laterals;
2.默认的输入要素类是arc(弧),表示Coverage中的弧将被导入,接受默认设置,在输出要素类中,输入“laterals”用作新要素类名;
3.单击OK;
一个消息框显示数据导入进度。所有地理数据导入工具和向导都会显示这样的消息框或进度条,当工具或向导完成以后,这个消息框自动消失,表明所有要素已经被导入到数据库中。
4.在ArcCatalog树中,选中laterals要素类,单击Preview标签,点击Preview标签查看要素;
5.右击laterals,并单击properties;
存储在地理数据库中的要素类和表的名称就象存储在关系数据库中(RDMS)物理表的名称一样。在RDMS中存储数据时,表和字段的名称并不是十分直观,需要详细的数据字典来跟踪表中存储的数据及其字段所表示的内容。
地理数据库允许创建字段、表和要素类的别名。别名是指这些项目的另一个名称,不象真名,别名不受数据库的,它可以包括特别的字符象空格等。当我们在ArcMap中使用数据的别名时,别名会自动地应用在要素类、表和字段上,然而在ArcCatalog中,这些项目总是用真名表示。
现在需要为新要素类和它的字段创建一个别名。
6.点击General标签;
7.为这个要素类输入一个别名“Water laterals”;
P22
8.单击Fields标签,单击OBJECTID字段,输入“Feature Identifier”作为它的别名;
9.对下面字段重复第9步的操作:
Field | Alias |
Shape | Geometry field |
DEPTH_BURI | Depth buried |
RECORDER_L | Recorded length |
FACILITY_I | Facility identifier |
DATE_INSTA | Installation date |
TYPECODE | Subtype code |
现在完成了导入laterals要素类到地理数据库,并增加了相应别名。接下来就可以导入owner.dat的INFO类。
导入INFO表到地理数据库中
在Montogomery地理数据库中,宗地要素类中的宗地属主信息包含在owner.dat INFO表中。为了建立宗地和属主之间的关系,属主信息必须导入到Montogomery地理数据库中,使用Table to Geodatabase工具,导入owner.dat INFO表到Montogomery地理数据库中,然后为表建一个别名。
P23
1.右击Montogomery地理数据库,指向Import,然后单击Table to Geodatabase,使用Table to Geodatabase工具导入Owner.dat INFO表到Montogomery地理数据库中;
2.在Input INFO or dBASE table文本框中输入输入C:\\ArcGIS\\ArcTuTor\\Building Geodatabase\\owner.dat;
3.在Output Geodatabase Table文本框中输入“owners”;
4.单击OK,出现显示操作进度消息框;
5.在ArcCatalog树中,单击Montogomery数据库中owners表,然后击Preview标签,浏览其记录;
6.右击owner表,然后单击Properties,查看表的属性;
7.输入“Parcel owners”,作为表的别名;
8.单击Field标签,并输入下面的字段别名:
Field | Alias |
ROWID | Object identifier |
OWNER_NAME | Owner name |
OWNER_PERCENT | Percentage ownership |
DEED_DATE | Date of deed |
在laterals Coverage中的数据和owner.dat INFO表现在已经存放在Montogomery数据库中。接下来通过为数据赋予行为来体现利用地理数据库的好处。下面将通过创建子类(subtype)和属性域(Attribute Domains)开始这个任务。
P24
练习3:创建子类和属性域
把数据储存在地理数据库中最大的优点是能定义如何编辑数据的原则。在练习3中,将学习定义某些规则来为自来水管直径创建一个新的属性域,为laterals要素类创建子类。并将新建的属性域、现有属性域以及默认值与每个子类的字段关联起来。
属性域是描述一个字段类型的有效值的规则。多个要素类和表可以共享数据库中的属性域。但是并非要素类和表中的所有对象都需要共享相同的属性域。
例如:在自来水网络中,假定消防自来水管线可以承受40到100psi的压力,但供水自来水管线可以拥有50到75psi的压力。可以使用属性域来确保这种规则。为了实现这种有效性规则,不必为消防和供水自来水管线建立各自的要素类。但为了能清楚知道每一种管线的类型,可以建立各自的域和默认值。可以通过建立子类来完成。
要了解更多关于子类和属性域的内容,请参阅第五章“子类和属性域”。
创建一个属性域
用ArcCatalog创建一个新的代码值属性域。这个新域为新的laterals要素类描述一组有效的管道直径。
1.右击Montogomery地理数据库,再单击Properties;
2.单击在Domain Name下面的第一个空行,然后输入“LatDiameter”,作为新域的名称,在Description字段,输入“Valid meters for water laterals”作为域的描述。
现在可以指定域的属性,这些属性包括这个域可以和什么类型的字段相关联,域是什么类型(范围或代码值),分割和合并策略,域的有效值等。
P25
一个范围域描述数字型值的有效范围,而代码值域描述一组有效的值。本例将创建一个新的代码值域。
所有域都有分割和合并策略,当一个要素被分割或合并后,ArcInfo系统查看这些策略来确定结果要素一个特定属性的值。
3.单击Field type,出现一个下拉列表,为这个域的字段类型选择float型;
4.单击Domain type,出现一个下拉列表,为域类型选取Code Values;
5.单击Split policy出现一个下拉列表,单击Duplicate作为域的分割策略,合并策略采用Default Value;
为代码值域输入有效值和代码,并给每个代码提供一个友好的描述。在后面的教程中,ArcMap使用关联有代码值域的字段的友好描述而不是代码来描述字段。
6.单击在Code列下面的第一个空字段,输入13,然后再单击其右边的描述字段输入“13””作为代码的描述。
7.依次增加下面代码值到列表中:
Code | Description |
10 | 10" |
8 | 8" |
6 | 6" |
4 | 4" |
3 | 3" |
2.25 | 21/4" |
2 | 2" |
1.5 | 11/2" |
1.25 | 11/4" |
1 | 1" |
0.75 | 3/4" |
-9 | Unknown |
8.单击OK,增加域到地理数据库中。
现在已经增加了属性域到地理数据库中,在教程的下一部分中,将进一步学习关联这个域到要素类的字段。
创建子类并将默认值和域关联
使用laterals要素类的属性,可以创建子类以及使每个子类的字段与默认值和域相关联。并非所有water laterals要素都需要有相同的子类、默认值以及教程后面介绍的连通性规则。
1.右击laterals要素类,再单击Properties;
2.单击Subtypes标签;
为laterals要素类指定子类字段。子类字段包含了一个特定要素所属子类的标识值。
3.单击Subtype字段的下拉菜单,选中TYPECODE;
现在可以增加子类代码和相应的描述,每增加一个新的子类时,将为子类的某些字段分派一个默认值和域。
4.单击子类代码0旁边的描述字段,在里面输入“Unknown”;
5.单击H-CONFID旁边的默认值,输入“0”作为它的默认值。同样为DEPTH-BURI和PECORDED-L输入“0”。为WMN-TYPE、PWTYPE字段输入“WUKNOWN”作为默认值。
P27
6.单击DIAMETER右边的Default Value字段,输入“8”,作为默认值。单击Domain字段的下拉菜单列表选中Lat Diament作为这个Unknown子类字段的属性域;
7.为MATERIAL字段重复第6步的操作,输入“DI”作为默认值,然后在Domain下拉列表中选中Material;
8.增加下列其它子类,并象Unknown子类一样设置默认值和属性域。但WMN-TYPE和PWTYPE字段的默认值例外,这些默认值如下表。
Code | Description |
1 | Hydrant laterals |
WMN_TYPE,PWTYPE | Default value=WHYDLIN |
2 | Fire laterals |
WMN_TYPE,PWTYPE | Default value=WFIRELIN |
3 | Service laterals |
WMN_TYPE,PWTYPE | Default value=WSERVICE |
当在ArcMap编辑环境下增加新的要素到带子类的要素类中时,如果没有明确指定子类时,默认的子类分配给这个新的要素。增加了所有子类后,可以从中选择一个设为默认的子类。
9.单击默认子类旁边的下拉列表,选Service laterals作为默认子类。
10.单击OK。
现在已经通过增加域并创建子类向数据库中增加了行为。在练习8中,将体会ArcMap编辑器如何应用这些域和子类。在这之前,还需要创建关系为地理数据库增加一些行为。
P29
练习4:在对象间创建关系
在练习2中,已经导入包含对象的INFO表到Montgomery地理数据库中。这个数据库中有一个叫parcels(宗地)的要素类包含了宗地对象。现在可以在宗地和宗地属主之间建立关系。这样,在ArcMap使用数据时,就能很容易找出哪些人拥有哪些宗地。
1.右击Landbase要素数据集,单击New,再单击Relationship class;
New Relationship Class向导出现,向导的第一个面板用来指定关系名称、源要素类和目标要素类或表。
2.输入“Parcel Owners”作为关系类的名称;
3.单击Owners作为源表;
4.双击Landbase,再单击其中的Parcel,作为目标要素类,单击Next。
下一个面板用来指定新建的关系类的类型。现在正在创建一个简单的关系类,因为属主和宗地可以在数据库中相互的存在。这里我们接受默认值——简单关系类。
5.单击Next;
现在必须指定路径标签和消息通知方向。向前路径标签描述了从源要素类到目标要素类的关系。在本例中,为从属主到宗地的关系;向后路径标签描述了相反方向——从宗地到属主的关系。
P30
消息通知方向描述了消息在相关对象间如何传递。在本关系类中,不需要消息通知,因此可以接受默认值-None。
6.为向前路径标签输入“owns”,为向后路径标签输入“is owned by”,单击Next;
现在需要确定关联基数。关联基数描述了与源要素类或表中一个对象相关联的目标要素类或表中对象的可能数量。
7.单击1-M(一对多),表明一个用户可以拥有多个宗地,单击Next;
现在需要指明新的关系类是否有属性,在本例中,Parcel owners关系类不要求有属性,选择默认值。
8.单击Next;
下一步,要在源表(owners)指定一个主关键字并在目标表(Parcels)中指定一个外部关键字。Owners表和Parcels表中在这些字段中有相同值的记录将被关联起来。
9.单击第一个下拉箭头,选择PROPERTY-ID作为源表的主关键字;
10.单击第二个下拉箭头,选择PROPERTY-ID作为目标表中的外部关键字;
11.单击Next,一个信息汇总页出现,看完汇总页后,单击完成。
现在已经在地理数据库中增加了第二类行为——关系。练习8学习如何在ArcMap中编辑关系。在这之前,还需要通过创建几何网络和定义连通性规则向地理数据库中增加行为。
P31
练习5:创建几何网络
在同一要素数据集中的要素类可以加入到几何网络中。几何网络模拟现实网络系统,如自来水网络。在教程的这一部分中,将从Montgomery地理数据库中的Water要素数据集的要素类中创建几何网络。然后建立连通性规则定义网络中的哪些要素能相互连接。
创建自来水网络
1.在Montgomery地理数据库中,右击Water要素数据集,单击New,再单击Geometric Network。
创建几何网络向导(Build Geometric Network Wizard)被打开,通过向导可以从已有要素类建立一个几何网络或创建一个空的几何网络。本例从water要素数据集中已有的要素类创建几何网络。
2.单击Next;
第二个面板用来确定是从已有的要素类创建一个网络,还是创建一个空的几何网络。选择默认设置,从已有的要素创建一个网络。
3.单击Next;
在要素数据集中选择哪些要素类将加入几何网络,并确定几何网络的名称。
4.选中列表中所有要素类;
5.输入“WaterNet”作为几何网络的名称,单击Next;
P32
必须指定几何网络中哪些要素类作为复杂边要素类。默认情况下,所有线要素类作为简单边要素类。
6.单击Yes,确定有些线要素类将作为复杂边;
7.选中Distribmains和Transmains,使自来水分配主水管和传输主水管成为主要复杂边;
8.单击Next;
在几何网络中的要素类必须与其它要素类相连。要素类的几何体可以被调整,通过捕捉(snapping)建立连通关系。在网络创建过程中,为了确保要素能够相互捕捉到,必须明确提出这些要素是否需要调整。
9.单击Yes,指定需要调整的要素类,输入“1.0”,作为捕捉容限值;
10.选中所有要素类,表示每一个要素类都可以被调整;
11.单击Next;
如果有接合点(junction)要素类,必须指定一个作为网络中的源(source)和宿(sink)。ArcInfo利用这些源和宿来确定网络中流的方向。
12.单击Yes,表明某些接合点要素类将作为源和宿。
13.选中Tanks要素类,表明它在网络中可以作为源或宿。
P33
14.单击Next;
现在可以分配网络的权。权值描述经过逻辑网络中一个元素时的损耗,如水流过管道时会有压力损耗一样。本章中的几何网络不要求指定权,这是默认值。
15.单击Next,出现信息汇总页面,单击Finish。
一个进度指示器显示网络创建每一个阶段的过程。
WaterNet几何网络已经创建。下面要为自来水网络建立一个连通性规则。
创建连通规则
网络连通规则约束相互连接的网络要素的类型以及可以与其他类型要素连接的要素的数量。通过这些规则我们能更好维护数据库中的网络连通的一致性。
1.右击WaterNet,单击Properties;
打开一个几何网络属性对话框,该对话框给出了网络中要素类和网络权值列表,可以使用这个对话框进行增加、删除和修改连通性规则。
2.单击Connectivity标签;
该项允许你进行增加和修改几何网络的连通性规则。首先创建一个新的边—结点规则,表示消防栓可以与消防管线连接。这同时也表明,当网络中增加一个消防管线时,其自由端(free end)应增加一个消防栓接合点。
3.单击下拉菜单,选中Laterals;
4.在要素类的子类列表框中,单击Hydrant laterals;
P34
现在可以单击网络中Hydrant laterals可以连接的接合点类型,为了简单起见,Hydrant olaterals只能连接到Hydrant上。
5.选中网络中的子类列表框中的Hydrant选项。另外还需要明确,当创建一个Hydrant laterals网络时,如果laterals的一个端点没有连接到另外一条边或接合点,一个(新的)Hydrant就放置在该端点。
6.点击Hydrants旁的“+”号,右击其下的Hydrants项,然后点击Set as Default。在Hydrant子类旁将出现一个蓝色的“D”字符,表明它是这个子类的默认接合点。
现在可以创建一个新的边——边规则。该规则确定Hydrant laterals可以通过水龙头(taps)、T形物(tees)和鞍形物(Saddles)连到分配主水管中。在Hydrant laterals和分配主水管之间默认的连接接合点是taps。
P35
7.在网络子类的列表中,单击Distribmians旁边的"+"号,选中它下面的Distribmains。因为在网络子类列表中选择了边线,这样网络中接合点子类列表变为活动状态,可以指定Hydrant lateral(消防侧水管)和distribution mains(分配主水管)具体连接的接合点类型。
8.在接合点子类列表中,单击Fitting旁边的“+”号,依次选取Tap、Tee和Saddle,注意在Tap旁边有一个蓝色“D”字,表示Tap是默认的接合点,选中WaterNet-Junctions,它是最初的或默认的网络类型;
9.单击OK;
现在已经通过定义连通性规则为地理数据库增加了其他的行为。通常还需要为网络定义更多的连通性规则。在教程的这一部分,只要按要求定义连通性规则。在教程的下一部分将为新Hydrant laterals的要素类创建要素链注记(feature-linked annotation)。
P36
练习6:创建注记
练习1中,我们浏览了Montgomery地理数据库中的所有要素类,一些要素类中包含与distribution和transmains两个要素类链接的注记。然后我们从一个Coverage中导入Water Laterals到Water Laterals要素数据集中。下面将为Water Laterals创建一个存放要素链接注记的注记类(annotation class)。
创建注记类
下面我们将在Montgomery地理数据库的Water要素数据集中创建注记类。
1.右击Water要素数据集,单击New,然后单击Feature Class;
打开New Feature Class向导,该向导可以用来在地理数据库中创建一个简单的、网络的、定制的或注记要素类。第一个面板要求指定新要素类的名称和别名,也提供了可以选择存储要素类中非简单要素(网络、注记等)的选项。
2.在名称文本框中输入“LateralDian”;
3.在别名文本框中输入“Water lateral Diameter annotation”;
4.在type单选框中,选择第二个存储注记对象。然后再单击第一个下拉箭头,选择ERSI Annotation Feature;
5.选中Link the Annotation to the following feature class复选框;
P37
6.单击第二个下拉列表箭头,选中Laterals为water lateral创建注记;
7.单击Next;
用这个面板来确定注记类是如何链接到被标注的要素。可选择链接要素类中的一个字段或复合字段作为注记内容,同时还可以指定注记的符号和放置的位置等高级内容。
8.单击Label Field的下拉箭头,选择DIAMETER;
9.单击Expression按钮,确定注记表达式;
表达式属性对话框出现在屏幕上,使用该对话框,可以从链接要素类中选择多个字段用来标注,并且可以使用逻辑表达式选择字段来标注。在这里,指定长度超过200英尺的laterals用直径和材料类型来联合标注;长度小于200英尺的,仅用直径标注。
10.从标注字段列表中拖放Shape-Length和MATERAL到表达式文本框中。
11.选中Advanced复选框,按下面的内容修改文本框中的表达式:
Function Findlabel([Shape_Length],[DIAMETER],[MATERIAL])
If [Shape_Length]>200 then
Findlabel=[DIAMETER]&””&[MATERIAL]
Else
Findlabel=[DIAMETER]
End if
End Function
P38
12.单击Verify按钮,保证输入表达式没有错误。如有错误,重新输入表达式;
13.单击OK;
14.单击Symbol;
Symbol Select对话框出现在桌面上,可以选择注记的字体、颜色、大小。
15.单击黑体(B)和斜体(I)按钮;
16.单击OK;
17.单击Label Placement选项:
placement properties对话框出现,可以指定注记的默认放置位置。
18.选择第二项,指定为每个lateral要素创建一个注记;
19.单击OK;
20.单击向导上的Next;
使用这个面板确定注记在多大比例尺时用所指定的符号显示在地图上。当放大地图时,地图上注记也随着放大,缩小地图时,注记也将随着缩小。
P39
21.输入“1000”作为参照比例;
22.单击地图单位下拉箭头。选Feet作为地图单位。当在链接要素类中创建一个新要素也希望同时创建一个新注记要素时,选择该复选框。单击Next。
这个面板为数据库存储要素类指定储存参数。默认值是不指定参数。
23.单击Next。
这个面板用来增加在面板中出现的字段。这里不要求增加字段。
24.单击Finish。
现在已经为laterals要素类创建了新的与之链接的注记类。新的注记类还没有包括注记要素。可以用ArcMap为laterals要素类中所有要素创建注记要素。
生成注记要素
要为laterals要素创建注记要素并把它们存储在要素链注记类中,需要使用ArcMap。
1.在ArcCatalog中,通过单击ArcMap图标按钮启动ArcMap。也可以通过桌面上的快捷图标或开始菜单中的程序列表来启动ArcMap;
2.单击Add Data按钮,增加Laterals要素类和Lateral Diam注记类到地图上。弹出Add Data对话框。
3.浏览到water要素数据集,选择Laterals和Lateral Diam要素类,单击Add。
P40
数据被增加添加到地图上,现在将标注注记要素。
4.在ArcMap工具条上单击的Select Features按钮;
5.在地图上拉框选择所有laterals要素;
6.在ArcMap表内容列表中(table of contents),右击lateral层,鼠标移到Selection,单击Annotate Selected Features;
Annotate Selected Feature对话框出现,选择默认操作。
7.单击OK;
8.关闭ArcMap;
现在已经通过从链接要素类字段中获取文本填充了注记类。这种链接自动地在要素和注记之间创建,并作为关系存储在地理数据库中。在练习8中,将说明注记如何随着与其关联的要素的变化而变化。但是首先,还需要为lateral和lateralDiam要素类创建新层。
P41
练习7:为地理数据库中的数据创建层
为了使浏览和用符号表达数据更方便,可以在ArcMap中为数据库中的数据创建并使用层。大多数需要的层已经创建好了,它们存放在教程的Layers文件夹中。这部分教程中,我们将为Laterals和Lateral Diam要素类创建新的层。
创建laterals层
1.右击laterals要素类,再单击Create Layer;
2.定位到教程目录下的Layers文件夹,在框中输入新层名称“Water Laterals”;
3.单击Save。新层就创建了。接下来新可以修改层的属性以增加符号。
P42
4.在ArcCatalog tree中,打开层文件夹,右击Water laterals层,再单击Properties;
通过属性对话框来设置层的各项属性,如可见比例、透明度等,这里将修改层的符号。
5.单击Symbology标签;
6.单击Categories;
在默认情况下,用基于子类字段的值分类(Unique Values)来对层符号化。这正是我们的想法,但必须修改每一个子类的符号。
P43
7.双击Hydrant laterals旁边的彩色直线,出现SymbolSelector对话框。通过这个对话框来设置laterals符号的特性。
8.单击Color下拉箭头,设置线的颜色为紫色;
9.在Width文本框中输入“1.5”,设定线的宽度为1.5;
10.单击OK;
11.对File lateral层,重复7到10的步骤,设置线的颜色为红色、线的宽度为1.5;
12.对Service lateral层,重复7到10的步骤,设置线的颜色为深蓝色、线的宽度为1.5;
13.单击OK。关闭属性对话框。
对Water lateral层的设置完成了。现在可以为water lateral创建注记层。
创建LateralDiam层
1.右击Lateral Diam层,再击Create layer;
2.定位到Layers文件夹,在层对话框中输入新层的名字“Water lateral diameter annotation”;
3.单击Save;
新的注记层就被创建。因为这个层指向一个注记要素类,符号是注记属性,因此,不必在层中重新进行设置。
现在已经成功地将Coverage和INFO表导入到地理数据库中,并且创建了子类、规则、几何网络和要素链接注记。教程的练习将进行一些编辑任务,包括修改已有的要素和它们的属性以及创建新的要素。教程的编辑部分将说明增加到地理数据库中的行为将如何使编辑地理数据库变得容易。
P44
练习8:编辑地理数据库
前面的练习指导我们完成导入数据到地理数据库的完整过程。使用导入的数据,创建了数据如何被编辑的规则、关联要素类中的对象与导入表中的对象、创建了几何网络和要素链接注记。现在学习如何方便地编辑地理数据库。
在本练习中,将增加教程目录下的所有层到地图中。数据添加到地图上以后,将进行以下编辑:
●更新宗地属主的信息;
●把现有的Fire hydrant要素从路旁边向后移动50英尺;
●创建一个新hydrant lateral。
更新宗地的属主信息
1.双击桌面上ArcMap快捷方式,启动ArcMap应用程序。
2.单击Add Data按钮(“+”),增加地图数据库的层到地图上。弹出Add Data对话框。
3.浏览到layers所在的文件夹,然后选中所有层,单击Add;
数据被增加到地图上,可以开始编辑地图。
4.可以看见Editor工具条仍出现在ArcMap窗口;
5.单击Editor菜单,再单击Start Editing;
P45
6.在工具条上单击Zoom In按钮,在要放大的部分拉框,使要素看得更加清楚。
现在从编辑Parcels层开始,为了更容易地选择宗地层,仅将Parcels层设为可选层。
7.单击Selection,指向Set Selectable Layers,Set Selectable Layers对话框打开。除Parcels层外其它层都不选,单击Close按钮关闭对话框。
8.单击Edit工具;
P46
9.拉框选择一组宗地;
10.单击Editor工具条上的Attributes按钮;
弹出Attributes对话框,其中列出所选择宗地的PARCEL_ID字段的值,第一个被选择的宗地的属性值出现在面板的右边。每一宗地都有“+”号标记,点击“+”号可查看有关属主对象。
11.单击第一个宗地旁边的+号;
向后路径标签——“is owned by”——即创建该关系类时所输入的,显示在属性对话框中的宗地下。
12.再单击“is owned by”旁边的"+"号。
与宗地关联的属主对象标识符(用数字表示)出现在关系路径标签的下面;
13.单击属主标识的值;
土地的属主的属性列在右边面板中。以前为属主表输入的字段名的别名被显示,而不显示其真字段名。使用别名可以容易地编辑属主属性值。
14.单击Percentage Ownership的值,然后输入100;
15.按Enter键;
16.单击Close按钮,关闭Attribute对话框。
P47
已经利用创建的ParcelOwners关系类来找到宗地属主并编辑其属性。为了理解在编辑网络要素时,网络连通性是如何自动维护的,现在将编辑一些网络要素。
移动现有的消防栓
编辑的第一步是从道路边线移走一个消防栓(fire hydrant)。消防栓是网络要素并与laterals要素加入到网络中,可以看到当移动消防栓时,网络连通性被维持。
1.单击菜单条上的Selection菜单,再单击Clear Selected Features,删除在前一个任务中所选择的宗地。
2.单击Selection,指向Set Selected Layers,去选(Uncheck)parcels层,复选(Check)Hydrants层,然后关闭对话框;
3.放大有一个消防栓的区域;
4.单击工具条上的Edit工具,在想要移动的消防栓周围拉框,选中消防栓;
5.把选中的消防栓从分配主水管上移走。注意消防栓移动后在消防栓和阀门之间的侧水管(laterals)也跟着延伸。
6.移动消防栓到新的位置;
当消防栓移动时,橡皮绑定的侧水管维持着与消防栓和阀门之间的连通性。这是ArcGIS8系统在交互编辑中如何维护网络的拓扑结构的一个例子。
新建一条消防侧水管
在这一部分教程中,将联合使用网络编辑、连通规则、属性规则、要素链接注记以增加一个新消防侧水管到自来水网络上。
1.单击菜单条上的Selection,再单击Clear Selected Feature,删除最近一次选择的消防栓;
2.单击菜单条上的Selected,指向Set Selected Layers,不选(Uncheck)hydrant层旁边的复选框,选择Distribmains、Water laterals和Fittings层,并关闭窗口。
3.放大地图到分配主水管区域;
4.单击Task下拉箭头,再单击Create New Feature;
P48
5.单击Target下拉箭头,将看到地图上图层的列表。Water laterals层旁边一个“+”号,表明这一层有子类,单击“+”号,可以看到导入的Coverage后增加的子类;
6.单击hydrant laterals,在Water laterals层上创建新的要素,并赋给hydrant laterals子类;
为了建立网络的连通性,增加新的消防侧水管时,必须将其精确地捕捉到分配主水管上。
7.单击Editor菜单,再单击Snapping;
Snapping Environment窗口出现在屏幕上,当增加一个消防侧水管时,将增加它到分配主水管的一些点上。因此必须对分配主水管的边设置捕捉。
8.选中分配主水管的边线,关闭Snapping Environment窗口;
9.单击Sketch工具;
10.移动鼠标到一条分配主水管上,鼠标将捕捉到分配主水管边上的点。
P49
11.当鼠标捕捉到分配主水管时,单击一次,开始新的消防侧水管的编辑草图(edit sketch);
在本例中,约束消防侧水管与分配主水管垂直(Perpendicular)。
12.在草图编辑仍处于激活状态时,右击分配主水管,在Sketch tools菜单,单击Perpendicular;
移动鼠标时,绘制的消防侧水管与分配主水管保持垂直,现在将新建一个65英尺长的消防侧水管。
13.右击Sketch工具,然后单击Length,输入“65”,按Enter键。一个新的顶点被增加到侧水管上,到分配主水管的垂直距离为65英尺;
14.右击鼠标,再点击Finish Sketch。创建好新的消防侧水管;
当创建好新的消防侧水管后,同时也做了很多事。首先,在分配主水管和消防侧水管相交的地方,创建了一个接合点,并且它们在网络中是拓扑连通的。由于在这些要素类型间已经用默认的接合点建立了一个连通性规则,所以这个接合点类型是默认的接合点——tap(水龙头)。
P50
新消防侧水管的另一个端点也增加了一个接合点。由于已经创建了自来水侧水管和消防栓之间的连通性规则,消防栓被设置为默认的接合点,所以被创建的接合点是一个消防栓。
移动消防侧水管,分配主水管通过橡皮绑定连接侧水管。单击Undo按钮,撤消移动。当单击分配主水管时,可以看到它是一个复合要素。这是一个复合边——尽管在逻辑网分割成,但几何网络仍是一个单一的要素。
新的连接被增加到网络上时,其注记也被增加。因为这条侧水管的长度小于200英寸,因此它的注记是“8''”。
如果想改变注记的值,需要改变管道的直径。
15.如果新增的消防侧水管没有选中,单击编辑菜单,选中新的消防侧水管。
16.单击Attribute按钮,新的消防侧水管的属性显示在对话框的右边,除了早期输入的默认值之外,其余所有字段都是空值。
17.单击Diameter Value。由于已经为消防侧水管关联了一个代码值域。从下拉列表中选择该值的一个描述值。
18.单击“6"”;
因为注记的内容来自于部分直径字段的值,当为直径输入新值时,注记内容也就自动更新。
P51
创建一个新的度量要素
在这部分练习中,将创建一个新的度量要素显示网络中两个消防栓之间的距离。我们将在地理数据库的度量要素类中创建这个新的度量要素。
1.放大地图到包括两个消防栓的区域;
当创建度量要素时,需要一个包含一组度量构造工具和样式列表的Dimensioning工具条,这些可以应用到新的度量要素中。
2.右击ArcMap窗口中的一个工具条。显示一组可用的工具条的列表。
那些已经被增加到地图中的工具条旁边有一个复选框。点击Dimensioning,Dimensioning工具条将出现。
3.点击Editor工具条中Target Layer下拉箭头,然后点击Dimensions。Dimensioning工具条将激活。
现在用一个对齐构造工具增加一个对齐度量要素,这是一个默认值。因为正在度量网络中的要素,我们将使用Water dimensions样式。
4.点击样式下拉箭头,度量要素类中的度量要素列表将出现,点击water dimensions样式。
5.点击Editor菜单,并点击Snapping;
Snapping Environment窗口出现。因为要创建一个度量用来显示两个消防栓之间的长度,需要对消防栓的顶点设置捕捉。
6.复选Hydrants旁边的方框,关闭Snapping Environment窗口。
7.点击Sketch工具;
8.移动鼠标到一个消防栓上;
9.用鼠标捕捉到该消防栓上,点击一次开始编辑;
10.移动鼠标到另一个消防栓上;
当移动鼠标时,编辑草图动态地绘制度量要素的第一部分,并更新其长度。
11.用鼠标捕捉到第二个消防栓并单击;
12.移动鼠标离开该消防栓;
当移动鼠标时,编辑草图动态显示度量要素的高度的变化。
13.移动鼠标到所需度量要素高度的地方并单击。
由于使用对齐构造方法,当三个点输入后,草图自动完成。度量要素也与在编辑草图中显示的那样出现在地图上。
至此,完成了对地理数据库的编辑。
使用ArcCatalog,创建了一个地理数据库,并为要素增加了行为。使用ArcMap编辑功能,利用地理数据库的好处,使编辑任务更加简便。
在ArcInfo中还有许多地理数据库要素和工具要探索、创建、管理和查询。下面几章,将学习用更加完整简便的方法存储和管理GIS数据。