admin管理员组

文章数量:1566359

2024年2月6日发(作者:)

第3章地理数据库

地理数据库(Geodatabase)是一种面向对象的空间数据模型,它对于地理空间特征的表达更接近我们对现实世界的认识。地理数据库在一个公共模型框架下,对GIS处理和表达的空间特征,如矢量、栅格、不规则格网(triangulated irregular network, TIV、网络等进行统一描述和存储,是目前最先进的数据管理模式。本章主要介绍地理数据库的概念,Ueodatabase的数据管理.智能化操作,版本与长事务管理等的原理与操作方法。

3.1 Geodatabase概述

3.1.1 Geodatabase数据模型

Geodatabase和空间数据库(spatial database)在本质上没有很大的区别,只是提法的不同。GIS使用Geodatabase来描述地理数据库的概念与操作,方便起见,本章皆用 Geodatabase描述地理数据库。

Geodatabase是Esri公司经过多年研发,在先前数据模型的基础上进化而来的,是保存各种数据集的“容器”。它建立在标准的关系数据库(RDBMS)基础之上,使用标准关系数据库技术表现地理信息数据模型,并加入了空间数据管理的模式。 Geodatabase中所有的数据都被存储在一个RDBMS中,既包括每个地理数据集的框架和规则,又包括空间数据和属性数据的简单表格。Geodatabase为ArcGIS更好地管理和使用地理数据提供了数据接口和管理框架,它集成了所有在ArcGIS中可以使用的数据类型(如要素类、格数据集、表)及其显示、访问、存储、管理和处理的方法。

abase的数据组织

Geodatabase依据层次型的数据对象来组织空间数据,这些数据对象包括对象类(object

class、要素类(feature class)和要素数据集(feature dataset)等。

1)对象类

在Geodatabase中,对象类是一种特殊的类,它没有空间特征,表现为可关联某种特定行为的表记录。如某块地的主人,在“地块”和“主人”之间,可以定义某种关系。

2)要素类

同类空间要素的集合即为要素类,如河流、道路、植被、用地、电缆等,也就是通常理解的矢量数据中的“图层”。要素类之间可以独立存在,也可以具有某种关系。当不同的要素类之间存在关系时,可将其组织到一个要素数据集中。

3)要素数据集

要素数据集由一组具有相同空间参考的要素类组成。一般而言,在以下三种情况下,可以考虑将不同的要素类组织到一个要素数据集(简称为要素集)中。

一专题归类表示。当不同的要素类属于同一范畴时,如全国范围内不同比例尺的公路交通专题数据,其点、线、面类型的要素类可组织成一个要素数据集。

一创建几何网络。构成几何网络的不同要素类必须组织到同一个要素数据集中。如燃气网络中,有阀门、减压阀、管路等设备,它们分别对应点或线类型的要素类,在进行燃气网络对应的几何网络建模时,这些要素类就必须放在同一要素数据集下。

一考虑平面拓扑。共享公共几何特征的要素类,如用地、水系、行政区界等。当移动其中的一个要素时,其公共的部分也要求一起移动,并保持这种公共关系不变。此种情况下,1

必须将这些要素类放到同一要素数据集下。

4)关系类

关系类(relationship class)定义两个不同的要素类或对象类之间的关联关系。例如,可以定义房主和房子之间的关系,房子和地块之间的关系等。

5)几何网络

几何网络(geometric network)是由若干要素类构建的一种新的类,用于表示现实世界中公用网络基础设施的行为并对这种行为进行建模。几何网络由一组相连的边和交汇点以及连通性规则组成。如定义一个供水网络.指定同属一个要素数据集的“阀门”、“泵站”、“接头”对应的要素类加入其中,并扮演“连接点”的角色;同时指定同属一个要素数据集的“供水干管”、“供水支管”和“入户管”等对应的要素类加入供水网络来扮演“边”的角色。

6)地址定位器

地址定位器(locators)是地理数据库中的一个数据集,用于管理要素的地址信息,从而执行地理编码。地理编码是根据地址定位器匹配单个地址或地址表的过程。对于每个匹配的地址,都将返回一个经过地理编码的位置。

2. Geodatabase数据模型的优点

Geodatabase使用面向对象的数据建模,可以定义自己的对象类型,通过定义对象之间的拓扑、空间关联和普通关联,以及定义它们之间的相互作用关系,更自如地表现地理信息。Geodatabase数据模型的优势在于:

(1) Geodatabase数据模型是地理数据统一存储的仓库,所有数据都能在同一数据库里存储和管理。

(2)数据输入和编辑更加准确。通过智能的属性验证能减少很多编辑错误,这是G

eodatabase数据模型被广泛采用的最主要原因。

(3)更为直观地处理数据模型,包含了与用户数据模型相对应的数据对象。

(4)要素具有丰富的关联环境。使用拓扑关系、空间表达和一般关联,用户不仅可以定义要素的特征,还可以定义要素与其他要素的关联情况。当与要素相关的要素被移动、改变或删除的时候,用户预先定义好的关联要素也会作出相应的变化。

(5)可制作蕴含丰富信息的地图。通过直接在ArcMap中应用先进的绘图工具,可以更好地控制要素的绘制,还可以添加一些智能绘图行为。

(6)地图显示中,要素是动态的。在ArcGIS中处理要素时,它们能根据相邻要素的变化作出响应。

(7)更形象地定义要素形状。Geodatabase数据模型中,可以使用直线、圆弧、椭圆弧和贝塞尔曲线来定义要素形状。

(8)要素都是连续无缝的。Geodatabase中可以实现无缝无分块的海量要素存储。

(9)多用户并发编辑地理数据。Geodatabase数据模型允许多用户编辑同一区域的要素,并可以协调冲突。

Geodatabase数据模型的优势就是搭建了一个框架,从而轻易地创建智能化要素,模拟真实世界界中对象之间的作用和行为。

3.1.2 Geodatabase的类型

Geodatabase有以下三种类型:文件地理数据库、个人地理数据库和ArcSDE数据库。

1.文件地理数据库和个人地理数据库

文件地理数据库和个人地理数据库是地理数据库的完整信息模型,包含拓扑、栅格目录、网络数据集、Terrain数据集、地址定位器等,这两种地理数据库不支持地理数据库版本管理。

文件地理数据库是以文件夹形式存储的各种类型的GIS数据集的集合,可以存储、查询和2

管理空间数据和非空间数据。在不使用DBMS的情况下能够扩展并存储大量数据。文件地理数据库可同时由多个用户使用,但同一数据同一时间只能由一个用户编辑。因此,一个文件地理数据库可以由多个编辑者访问,但必须编辑不同的数据。

个人地理数据库所有的数据集都存储于Microsoft Access数据文件内,在Microsoft Acess数据文件中存储和管理空间数据和非空间数据。个人数据库存储在Access数据库中,其最大容量为2 GB,并且一次只有一个用户可以编辑个人地理数据库中的数据。

2. ArcSDE地理数据库

ArcSDE地理数据库是支持多用户同时并发编辑的大型地理数据库,它通过ArcSDE空间数据库引擎在关系数据库(如IBM DB2 , Oracle, PostgreSQL和SQL Server等)的基础上增加了处理空间数据的能力。主要优点:通过关系数据库存储空间数据;可以有弹性地选择数据库的规模和大小;便于使用结构化查询语句(structured query language, SQL)来访问Geodatabase的表和记录。

ArcSDE地理数据库可充分利用DBMS的基础架构实现以下内容:超大型连续GIS数据库,多用户的同时并发编辑,长事务和版本化工作流等。在大型企业级GIS中一般采用ArcSDE地理数据库进行空间数据的存储和服务。

3.2 Geodatabase的数据管理

Geodatabase可以看做是一种数据格式,它将矢量、栅格、地址、网络和投影信息等数据一体化存储和管理。Shapefile文件、Coverage文件在Geodatabase出现之前就已经广泛使用。Shapefile文件是使用最广泛的空间数据类型,Coverage文件是地理关系型数据类型的代表,被认为是第二代GIS数据模型( Geodatabase是第三代数据模型)。尽管两者不属于Geodatabase的范畴,但它们是Geodatabase数据的重要数据源,因此下面先对它们进行介绍。

3.2.1 Shapefile文件的创建

Shapefile文件是Esri研发的工业标准的矢量数据文件,一个完整的Shapefile文件至少包括3个文件:一个主文件(*. shp)、一个索引文件(* . shx)和一个dBase表文件(*. Dbf)。

一*.shp。存储地理要素的几何图形的文件。

一*.shx。存储图形要素与属性信息索引的文件。

一* . dbf。存储要素属性信息的dBase表文件。

一个Shapefile文件中的主文件、索引文件和dBase文件必须具有相同的前缀,且它们必须放在同一个文件夹下。如主文件:countries. shp;索引文件:countries. shx; dBase表:countries.

dbf。

Shapefile文件并不存储拓扑关系、投影信息和地理实体的符号化信息,仅仅存储空间数据的几何特征和属性信息,所以要想在不同的机器迁移数据时保持符号化信息不变,必须使用地图文档格式(* . mxd)或者图层文件格式(* . lyr)。尽管Shapefile文件无法存储投影等信息,但是可以对它进行定义投影和构建空间索引等操作,在同一文件夹下生成具有不同扩展名的文件。如,* . prj文件用于存储坐标系的信息;*. xml文件为元数据文件,用于存储Shapefile的相关信息等。

创建一个新的Shapefile时,必须定义它包含的要素类型,如点、线、面等类型。Shapefile创建之后,这些类型不能被修改。创建Shapefile文件的操作步骤如下:

(1)在ArcCatalog目录树中,右击要存放Shapefile的文件夹,在弹出菜单中,单击【新建】→【已Shapefile】,打开【创建新Shapefile】对话框。

3

(2)在【创建新Shapefile】对话框中,设置文件【名称】和【要素类型】。要素类型可以为点、折线、面、多点、多面体。

(3)单击【编辑】按钮,打开【空间参考属性】对话框,如图3. 1所示。此处可定义Shapefile的坐标系统,系统默认为“Unkown"。

(4)单击【确定】按钮,完成新建Shapefile文件的操作,新创建的Shapefile文件出现在文件夹中。

图3. 1【空间参考属性】对话框

注意事项

a)在【创建新Shapefile】对话框中,选中复选框【坐标将包含M值。用于存储路径数据】表示Shapefile要存储表示路径的折线;选中复选框【坐标将包含Z值。用户存储3D数据】表示Shapefile将存储三维要素。

b)在ArcCatalog(或任何ArcGIS程序)中查看Shapefile文件时,将仅能看到一个代表Shapefile的文件,使用Windows资源管理器则可看到所有与Shapefile相关联的多个文件信息。复制、删除Shapefile时,建议在ArcCatalog中执行该操作。如果使用Windows资源管理器进行操作,请确保选择组成该Shapefile的所有文件。

3.2.2 Coverage文件的创建

Coverage模型是地理关系型数据类型的代表。其主要特征是:

(1)空间数据与属性数据相结合。空间数据存储在二进制索引文件中,可使显示和访问最优化;属性数据存储在表格中,用二进制文件中的要素数目的行数来表示,并且属性和要素使用同一ID连接。

(2)矢量要素之间的拓扑关系也被存储。存储线的结点用以推算哪些线在哪些地方相连,同时还包含线的右侧及左侧有哪些多边形。

Coverage作为一个目录存储在计算机中,目录的名称即为Coverage的名称,Coverage的有序集合被称为工作空间。每个Coverage工作空间都有一个info数据库,存储在子目录info文件夹下。Coverage文件夹中的每个*. adf文件都与info文件夹中的一对文件(* . dat和、.nit)关联。因此,切勿删除info文件夹,这样会损坏Coverage文件。

创建新Coverage文件时,可将其他Coverage文件作为模板。使用ArcToolbox中的【转为

Coverage】工具输入一个或多个要素类可创建单个Coverage文件。组合数据时,将主Coverage文件用做某项目中所有Coverage文件的模板是十分必要的,便于Coverage文件正确地叠加,4

否则,不同Coverage文件中的相同要素(例如海岸线)可能无法对准。值得注意的是通过模板创建新Coverage文件时,模板Coverage文件的控制点、边界和坐标系信息将复制到新Coverage文件中。如果不使用模板,则必须向新Coverage文件中添加控制点,然后才能将要素添加到其中。向新Coverage文件中添加要素之前无须设置该Coverage文件的边界。创建Coverage文件的操作步骤如下:

(1)在ArcToolbox中,双击【转换工具】→【转为Coverage 】【要素类转Coverage】工具,打开【要素类转Coverage】对话框,如图3. 2所示。

图3. 2【要素类转Coverage】对话框

(2)在【要素类转Coverage】对话框中,输入【输入要素类】数据Shp. shp(位于“…chp03创建coverage data"),指定【输出Coverage】的保存路径和名称,【XY容差(可选)】C坐标间的最小距离)及【双精度(可选)】根据需要进行设置,如图3. 2所示。

(3)单击【确定】按钮,完成操作。

注意事项:如果有ArcInfo级别许可并安装了ArcInfo Workstation,可以直接新建Coverage文件,但是由于Workstation目前使用较少,这里不再赘述。

3.2.3 Geodatabase的创建

在ArcGIS中,可以采用三种方式来创建地理数据库:

(1)设计并新建一个空的地理数据库。

(2)复制并修改现有地理数据库,随后向复制的地理数据库中加载数据集。

(3)创建完全复制于现有地理数据库的地理数据库。

文件和个人数据库可以通过以上方法建立,但是ArcSDE数据库须在安装对应的关系数据库管理系统并进行相关的配置以后,通过添加空间数据库连接的方式使用。

1. 创建地理数据库

创建地理数据库的操作步骤如下:

5

(1)在ArcCatalog目录树中,右击要建立新地理数据库的文件夹,在弹出菜单中,单击【新建】→【文件地理数据库】,创建文件地理数据库。

(2)在ArcCatalog目录树窗口,将出现名为“新建文件地理数据库”的地理数据库,输入文、件地理数据库的名称后按Enter键,一个空的文件地理数据库就建成了。同样可以建立个人地理数据库。

在建立一个新的地理数据库后,就可以在这个数据库内建立起基本组成项。数据库的基本组成项包括要素类、要素数据集、属性表(table)、关系类以及工具箱(toolbox)、栅格目录(raster catalog)、镶嵌数据集(mosaic dataset)、栅格数据集(raster dataset)等。

2.创建要素数据集

要素数据集是存储要素类的集合。建立一个新的要素数据集,必须定义其空间参考,包括坐标系统(地理坐标、投影坐标)和坐标域(X ,Y,Z,M范围及其精度)。数据集中所有的要素类必须使用相同的空间参考,且要素坐标要求在坐标域内。定义了要素数据集空间参考之后,在该数据集中新建要素类时不需要再定义其空间参考,直接使用数据集的空间参考。如果在数据集之外即在数据库的根目录处新建要素类时,则必须单独定义空间参考。

创建要素数据集的操作步骤如下:

(1)在ArcCatalog目录树中,右击要建立新要素数据集的地理数据库,在弹出菜单中,单击【新建】→【要素数据集】,打开【新建要素数据集】对话框。

(2)在【新建要素数据集】对话框中,输入要素数据集【名称】。单击【下一步】按钮,打开选择坐标系对话框。

(3)选择要素数据集要使用的空间参考,可以选择为地理坐标系、投影坐标系或不设置参考坐标系。单击【下一步】按钮,打开相关容差设置对话框。

(4)设置【XY容差】,【Z容差】及【M容差】值,一般情况选中【接受默认分辨率和属性域范围(推荐)】复选框。

(5)单击【完成】按钮,完成要素数据集的创建。

图3. 3【新建要素类】对话框

3.创建要素类

在ArcCatalog目录树中创建要素类,可以在要素数据集中建立,也可以独立建立,但在独立建立时必须要定义其投影坐标。创建要素类时,需选择创建的要素类用于存储的要素类型,6

如多边形、线、点、注记、多点、多面体、尺寸注记等。

1)在要素数据集中建立要素类

在要素数据集中建立要素类的操作步骤如下:

(1)在ArcCatalog目录树中,右击要创建新要素类的要素数据集,在弹出菜单中,单击【新建】→【要素类】,打开【新建要素类】对话框,如图3. 3所示。

(2)在【新建要素类】对话框中输入要素类的【名称】以及【别名】,并选择要素类类型,在【几何属性】区域根据需要选择坐标是否包含M值或者Z值。

(3)单击【下一步】按钮。若在图3. 3【几何属性】区域中,单击选中【坐标包含M值。用于存储路径数据】复选框,则打开图3. 4所示对话框,根据需要设置【M容差】;若不选择,如果是在文件地理数据库的要素数据集中建立要素类时,则弹出定义配置关键字对话框,指定要使用的配置关键字,单击【下一步】按钮,打开图3.所示对话框,如果是在个人地理数据集中建立要素类时,则直接打开图3. 5所示对话框。

图3. 4设置新建要素类中的M容差

图3. 5向新建要素类中添加字段

(4)添加要素类字段,设置相应的【字段名】、【数据类型】和【字段属性】。默认情况下,有几个字段已添加到注记要素类中。如果要从另一个要素类或表中导入字段,可单击【导入】按钮,在打开的对话框中选择要导入的要素类或表,则该要素类或表的字段将添加到新建的要素类字段中。同时可以在【字段属性】中修改任意字段属性。

(5)单击【完成】按钮,完成要素类的创建。

2)建立独立的要素类

独立要素类就是在地理数据库中不属于任何要素数据集的要素类,其建立方法与在要素集中建立简单要素类相似。只是独立要素类必须建立空间参考坐标、投影系统参数以及XY域。

创建独立要素类的操作步骤如下:

(1)在ArcCatalog目录树中,右击要创建新要素类的地理数据库。

(2)在弹出菜单中,单击【新建】→【已要素类】,在对话框中输入要素类的【名称】及【别名】;在下拉框中选择将在该要素类中存储的要素类型;如果数据需要M值或Z值,则选中相应的复选框。

(3)单击【下一步】按钮,选择要使用的空间参考,或导入要将其空间参考用做模板的要素类或要素数据集;如果要在所选坐标系中更改任何参数,则单击【修改】按钮,编辑坐标系参数。

(4)单击【下一步】按钮,设置【XY容差】或接受默认值。地球表面上投影点的默认【XY容差】是1mm。如果步骤(2)中选择了具有M值或Z值,则输入【M容差】或【Z容差】。

(5)如果是个人地理数据库,单击【下一步】则跳到步骤(6)。如果是文件地理数据库或者ArcSDE地理数据库,单击【下一步】,则打开指定数据库存储配置对话框,可指定要使用的配置关键字。单击【下一步】按钮,弹出添加字段对话框。

(6)在对话框中添加字段,如图3. 5所示。

(7)单击【完成】按钮,完成独立要素类的创建。

4.创建表

表用于显示、查询和分析数据。行和列分别称为记录和字段。每个字段可存储一个特定的数据类型,如数字、日期或文本等。

要素类实际上就是带有特定字段(包含有关要素几何的信息)的表。这些字段包括用于存储点、线和多边形几何图形的Shape字段。ArcGIS会自动添加、填充和保留一些字段,例如唯一标识符数字(OBJECTID)和Shape。

7

在ArcGIS中可通过一个公用字段(也称为键)将一个表中的记录与另一个表中的记录相关联。此类关联方式有多种,包括在地图中临时连接或关联表,或者在地理数据库中创建可以保持更长久关联的关系表。例如,可将宗地所有权信息表与宗地图层进行关联,因为它们共享一个宗地ID字段。

创建表的操作步骤如下:

(1)在ArcCatalog目录树中,右击要创建新表的数据库,在弹出菜单中,单击【新建】→【表】,打开【新建表】对话框,输入表的【名称】及【别名】。

(2)单击【下一步】按钮,如果是在文件地理数据库中创建新表,可选配置关键字,以使用多种语言管理文本字段。大多数情况下,使用“DEFAULTS”关键字。如果是个人地理数据库则不需要配置关键字。

(3)单击【下一步】按钮,向表中添加字段,单击【字段名】列中的下一个空白行输入名称,然后选择【数据类型】,也可设置其【字段属性】,操作如前文所述。

(4)单击【完成】按钮,完成表的创建。

5.创建空间索引

在关系表或要素类,户存储数据时,就可以建立空间索引来快速查找要素类中的要素。识别要素、通过点选或框选来选择要素以及平移和缩放等都需要使用空间索引。建立空间索引后,查询时将先在索引里查找,然后返回适合的记录,这要比从第一条记录开始遍历整个表的速度快得多,这样就提高了空间要素的查询速度。

1)创建空间索引

创建空间索引的操作步骤如下:

1)在ArcCatalog目录树中,右击要创建索引的要素类Road位于“... chp03新建文件地理数据库新建文件地理数据库.gdb dataset" ),在弹出菜单中,单击【属性】,打开【要素类属性】对话框,单击【索引】标签,切换到【索引】选项卡,如图3. 6所示。

(2)单击【添加】按钮,打开【添加属性索引】对话框,在【名称】文本框中输入新索引的名称, 如图3.7所示。

(3)在【可用字段】列表框中,单击选定想要建立索引的一个或多个字段。单击→按钮,把选定的字段移动到【选定字段】列表框中。可使用↑和↓按钮来改变字段在索引中的顺序。

(4)单击【确定】按钮,关闭【添加属性索引】对话框。

(5)单击【确定】按钮,关闭【添加空间索引】对话框。

(6)单击【确定】按钮,关闭【要素类属性】对话框。

图3. 6【要素类属性】对话框

图3. 7【添加属性索引】对话框

注意事项

如果要建立索引的字段的值是唯一的,选中【唯一】复选框。如果想要索引字段的数据按升序排序,选中【升序】复选框。

2)修改空间索引

修改空间索引的操作步骤如下:

(1)在ArcCatalog目录树中,右击需要修改空间索引的要素类,在弹出菜单中,单击【属性】,打开【要素类属性】对话框,然后切换到【索引】选项卡。

(2)如果已经存在一个空间索引,则需要先删除己经存在的索引。如果不存在空间索引,

请直接跳到步骤(4)。

(3)单击【删除】按钮,删除已存在的空间索引。

(4)单击【编辑】按钮,打开【添加空间索引】对话框,输入新的索引参数。

(5)单击【确定】按钮,关闭要素类属性对话框。

8

3.2.4 Geodatabase数据导入

在Geodatabase中维护空间数据,可以通过先新建要素类然后再添加、编辑要素的方法,更常使用的是将已经存在的数据导入Geodatabase中。通过ArcCatalog,可以将CAD,Table,

Shapefile, Coverage等数据或栅格影像等加载到Geodatabase中。导入一个数据表或要素类的同时,就创建了一个新的Geodatabase要素类。如果已有数据不是上述几种格式,可以用ArcToolbox中的上具进行数据格式的转换,再加载到地理数据库中。

1.导入数据

可将Shapefile , Coverage , CAD数据和地理数据库要素类导入Geodatabase中。如果要导入的要素类已具有它在Geodatabase中所需使用的坐标系,则使用【要素类至要素类】或【要素类至地理数据库】工具导入数据。使用这些工具创建的要素类可以是独立的,也可以导入到现有要素数据集中。如果创建独立要素类,则使用与要导入的要素类相同的空间参考。如果要在现有要素数据集中创建要素类,则新要素类会自动采用与要素数据集相同的空间参考。

1)导入要素类

导入要素类的操作步骤如下:

(1)在ArcCatalog目录树中,右击要导入Geodatabase中的要素数据集,在弹出菜单中,单击【导入】。如果导入单个要素,则可以选择【要素类(单个)】;如果要导入多个要素,则可以选择【要素类(多个)】。这里以导入单个要素类为例进行介绍。单击【要素类(单个)】,打开图3. 8所示的【要素类至要素类】对话框。

(2)在【输入要素】文本框中输入要转入的要素tract(位于“... chp03新建个人地理数据库新建个人地理数据库.mdbdataset"),在【输出位置】文本框中指定输出路径和名称。

(3)单击【确定】按钮,完成要素类的导入。

图3. 8【要素类至要素类】对话框

注意事项:ArcGIS中,在如图3. 8所示的对话框中输入指定条目时,如【输入要素】、【输出位置】等,可以通过下拉框选择(如果地图又档中已加载数据)或者点击己按钮,输入其他数据,也可以手工输入。本书的后续章节对此问题简单描述为输入……的数据。

2)导入表

导入表的操作步骤如下:

(1)在ArcCatalog目录树中,右击要导入表的地理数据库,在弹出菜单中,单击【导入】,【表(单个)】,打开【表至表】对话框。

(2)在【表至表】对话框中设置参数,同导入要素类相同。

一一【输入行】。指定输入dBase, info或地理数据库表。

一一【输出位置】。输入将创建输出表的位置。

一一【输出表】。输入输出表的名称。

一一【表达式(可选)】。输入将用于选择记录的SQL查询表达式。表达式的语法因数据格式的不同而有所差异。

一一【字段映射(可选)】。选择字段和字段内容。

一一【配置关键字(可选)】。此设置用于定义文件和ArcSDE地理数据库的存储参数(配置)。个人地理数据库不使用配置关键字。

(3)单击【确定】按钮,完成表的导入。

2.导出数据

导出数据能在多个地理数据库之间共享数据并选择性地更改数据格式。ArcGIS可将地理数据库的全部或任意部分导出,从而能够灵活地传输数据。

9

1)导出XML工作空间文档

将要素数据集、类和表导出至导出文件时,也会导出所有的数据。例如,如果导出几何网络或拓扑类,那么也会导出该网络或拓扑中的所有要素类。如果导出处于某关系中的要素类或表,那么除要素类或表之外,也会导出与其关联的关系类。对于具有与要素关联的注记要素类同样如此。对于具有域、子类型或索引的要素类,其域、子类型或索引也会导出。

导出XML工作空间文档的操作步骤如下:

(1)在ArcCatalog目录树中,右击要导出的地理数据库、要素数据集、要素类或表,在弹出菜单中,单击【导出】→【XML工作空间文档】,打开【导出XML、工作空间文档】对话框,如图3. 9所示。

(2)在【导出XML、工作空间文档】对话框中,若要导出架构和数据,选择【数据】;若要导出架构而不包含任何要素类和表记录,选择【仅方案】。

(3)指定要导出的新文件的路径和名称,若通过在文本框中输入的方式指定路径和名称,则为文件提供*.xml,*.zip或*.z扩展名来指定文件类型;若通过【另存为】对话框来指定路径和名称,则在【另存为】对话框中指定文件类型。如果要导出的数据包含元数据,则选中【导出元数据】复选框。单击【下一步】按钮,打开图3. 10所示对话框。

(4)在导出的数据列表中包括了所有相关数据,例如,在步骤(1)中仅右击要素数据集,则数据集中的所有要素类都会被列出。

(5)单击【完成】按钮,完成XML工作空间文档的导出。

图3. 9【导出XML工作空间文档】对话框

图3. 10导出XML工作空间文档中选择要导出的项

注意事项

对于不想导出的要素类、表或关系类,取消选择相应的复选框。如果将网络或拓扑中某一要素类的复选框保留为选中状态,则将导出该网络和拓扑中的所有要素类。

2)导出要素类至其他地理数据库

导出要素类并将其导入到其他地理数据库,与在ArcCatalog目录树中使用【复制并粘贴】命令将数据从一个地理数据库复制到另一个地理数据库是等效的。这两种方法都会创建新的要素数据集、类和表,并传输所有相关数据。

导出要素类至其他地理数据库的操作步骤如下:

(1)在ArcCatalog目录树中,右击需要导出到Geodatabase中的数据,在弹出菜单中,单击【导出】。如果是单个要素导出,则选择【转出至地理数据库(Geodatabase)单个)】。如果是多个要素导出,则选择【转出至地理数据库(Geodatabase)(批量)】。

(2)在【要素类至要素类】对话框中没置参数。在【输入要素】文本框中输入要转入的数据库位置,在【输出位置】文本框中输入新要素类名称的位置,在【输出要素类】中输入新要素类名称。

(3)单击【确定】按钮,完成导出操作。

若要通过SQL语句选择合适的记录以形成新的要素类,则单击【表达式】右边的【SQL】按钮。

3.加载数据

数据的导入和数据的载入,虽然都是向数据库中添加数据,但是它们的方式是不同的。数据的导入是在数据库本身没有要素类或要索集的情况下,将另外已有的数据导入。而数据的载入是在数据库中原有要素类或要素集的基础上,继续添加数据。

1)在ArcCatalog中加载数据

在Geodatabase中载入数据是指将其他形式或格式的数据内容加载到Geodatabase的要素10

类或表格中。其操作步骤如下:

(1)在ArcCatalog目录树中,右击要载入数据的要素类City(位于“..chp03新建文件地理数据库新建文件地理数据库.gdbdataset"),在弹出菜单中,单击【加载】→【加载数据】,打开【简单数据加载程序】对话框。单击【下一步】按钮,打开图3. 11所示对话框。

(2)在对话框中,选择要输入的Shapefile 、Coverage、表格或要素数据集,单击【添加】按钮将其增加到数据列表中。单击【下一步】按钮,打开图3. 12所示对话框。

图3. 11【简单数据加载程序】中的 图3.12 【简单数据加载程序】中的选择

加载源数据 目标地理数据库

(3)加载【选择一个现有的地理数据库】,确定加载数据的目标地理数据库。然后【选择目标要素类】。单击【下一步】按钮,打开图3.13所示对话框。

(4)单击【匹配源字段】列中的下拉框井选择与目标字段匹配的源数据字段。如果不想将源数据中某个字段的数据加载到目标数据中,可将【匹配源字段】参数保留为“无”。单击【下一步】按钮,打开图3. 14所示对话框。

图3. 13【简单数据加载程序】中的匹配字段 图3.14【简单数据加载程序】中的加载源数据

(5)如果要加载所有源数据,则选中【加载全部源数据】单选按钮。如果要使用属性查询来限定从源数据加载到目标中的要素,则选中【仅加载满足查询的要素】单选按钮

(6)单击【下一步】按钮,打开【摘要】对话框。

(7)单击【完成】按钮,完成数据的加载。

2)在ArcMap中加载数据

ArcMap中的对象加载器可用于加载多个源表和要索类,前提是它们处于作为加载目标的要索类的空问参考范围内。还可指定将输入数据中的相应字段分别加载到日标要素类或表的字段中。此外,可通过此向导指定一个查询,以限定所加载的要索。

在ArcMap中加载数据的操作步骤如下:

(1)在ArcMap中添加【加载对象】命令。

11

一在ArcMap主菜单中,单击【自定义】→【自定义模式】.打开【自定义】对话框.切换到【命令】选项卡.在【类别】列表框中单.击【数据转换器】。

一将【加载对象】命令从【命令】列表拖放到【编辑器】工具栏中.此命令将显示在工具栏中。

一单击【关闭】按钮。

(2)使用【加载对象】命令载入数据。

—将数据Adata添加到.ArcMap(位于“……chp03加载dataAddData. gdb").单击【编辑器】→【开始编辑】,启动数据编辑。

—单击【加载对象】按钮.打开【对象加载器】对话框.加载源数据.‘宿舍楼.shp”和“教学楼.shp"(位于”……chp03加载data ").如图3. 15所示。

一单击【下一步】按钮,选择要加载对象的【目标】图层.单击【下一步】按钮。

一单击【匹配源字段】下拉框,然后单击要与目标字段匹配的源数据字段。如果不想将源数据中某个字段的数据加载到目标数据中,可将【匹配源字段】参数保留为“无”如图3. 16所示。

一单击【下一步】按钮,如果要加载所有源数据。则选中【加载全部数据源】单选按钮。如果要使用属性查询来限定从源数据加载到目标中的要素,则选中【仅加载满足查询的数据源】单选按钮,然后单击【查询构建器】按钮,打开【查询数据】对话框,创建查问以限定要从源数据加载到目标中的要素单击【下一步】按钮,打开图3.17所示对话框。

图3.16 【对象加载器】中的匹配字段 图3.17 【对象加载器】中的设置捕捉要素

一在【对象加载器】中的设置捕捉要素对话框中.根据需要设置相关参数。

一单击【下一步】按钮,查看已指定用于加载数据的选项,如果要进行更改,则单击【上一步】。

一单击【完成】按钮,完成数据的加载、在ArcMap中全图显示可查看数据加载的结果。

3.3 Geodatabase的智能化操作

前面讲述了如何新建一个Geodatabase并且向其加载数据,但Geodatahase中所包含的不仅仅是要素类、要素集和表,还可能包含关系类、注释类、几何网络、拓扑等不同的结构和类别。拓扑关系将在第6章中介绍,本节主要讲述Geodatabase中属性域、子类型、注记和关系类等操作。

12

3. 3. 1属性域操作

地理数据库按照面向对象的模型存储地理信息,也可以将其非空间信息保存在表中。对于要素和表可以设置一些规则进行限制。对属性的约束称为属性域。

属性域是描述字段合法值的规则,是一种增强数据完整性的方法,用于约束表或要素类的任意特定属性中的允许值。可分为【范围】和【编码的值】。【范围】可以指定一个范围的值域,即【最大值】和【最小值】。【编码的值】给一个属性指定有效的取值集合,包括两部分内容一个是存储在数据库中的代码值,一个是代码实际含义的描述性说明。【编码的值】可以应用于任何属性类型,包括文本、数字、日期等。

如果要素类中的要素或表中的非空间对象己被分组为各个子类型,则可将不同的属性域分配给每个子类型一个域与某个属性字段相关联,只有该域内的值才有效,即此字段不会接受不属于该域的值。例如某个建筑的建筑年份限定在1900-2008年,超过2008这个数宇的年份则被视为非法。可以在地理数据库中的各要素类、表和子类型之间共享特性域。例如,给水主干管的要素类和给水支管的要素类可以将同一个域用于地表类型字段。

1.属性域的创建

在ArcCatalog中,可以很方便地为Geodatabase创建属性域。其操作步骤如下:

(1)在ArcCatalog目录树中,右击【新建文件地理数据库】(位于“... chp03新建文件地理数据库.gdb")。在弹出菜单中,单击【属性】。打开【数据库属性】对话框,如图3. 18所示。

图3.18 【数据库】属性对话框

(2)单击【属性域】标签,切换到【属性域】选项卡。

(3)单击【属性域名称】列表框下的空字段输入新域的名称单击新域的【描述】列表框,然后输入此域的描述。

(4)在【属性域属性】区域,可以设置如下属性:①【字段类型】可以修改此域属性字段的类型.默认值为长整型②【属性域类型】有【范围】和【编码的值】两种选择。若在【属性域类型】选择【范围】,则会出现【最小值】和【最大值】;本例选择【编码的值】,编码值域仅支持默认的【分割策略】和【合并策略】。当要把一个要素分割成两个要素时,选择【分割策略】;当要把两个要素合并成一个要素时,选择【合并策略】。

13

(5)单击【确定】按钮,完成属性域的创建。

2.属性域的查看

按照述方法为一个Geodatabase创建了属性域后,在Geodatabase里面的要素都具有了属性域,对其进行查看的方法如下:

(1)在ArcCatalog目录树中,右击需要查看属性域的要素类,单击【属性】,打开【要素类属性】对话框。单击【子类型】标签,切换到【子类型】选项卡。

(2)单击【属性域】按钮,打开【工作空间属性域】对话框,可对属性域进行查看。

3.属性域的删除与修改

在Geodatabase属性域对话框中,可以进行属性域的删除或修改,包括属性域的名称、类型、有效值等。只有属性域的拥有者才能删除和修改属性域。在属性域的建立过程中,建立属性域的用户被记录在数据库中。属性域还可以与要素类、表、子类型的特定字段关联,当一个属性域被一个要素类或表应用时,就不能被删除或修改。属性域的删除与修改的操作步骤如下:

(1)在ArcCatalog目录树中,右击要删除或修改属性域的地理数据库,在弹出菜单中,单击【属性】,打开【数据库属性】对话框,单击【属性域】标签,切换到【属性域】选项卡。

(2)单击选中属性域名称文本框的某一行,如果要删除,直接按Delete键即可;如果要修改,则和上述新建方法一样改变其设置。

(3)单击【确定】按钮,完成属性域的删除或修改。

4.属性域的关联

在Geodatabase中一旦建立了一个属性域后,就可以将其默认值与表或要素类中的字段相关联。属性域与一个要素类或表建立关联以后,就在数据库中建立了一个属性有效规则。

同一属性域可与同一表、要素类或子类型的多个字段相关联,也可以与多个表和要素类中的多个字段相关联。属性域的关联操作步骤如下:

图3. 19【要素类属性】中的属性域关联

(1)在ArcCatalog目录树中,右击要关联的要素类Rtext(位于“... chp03新建文件地理数据库新建文件地理数据库.gdbdataset"),在弹出菜单中,单击【属性】,打开【要素类属性】对话框,切换到【字段】选项卡,如图3 . 19所示。

(2)在【字段名】中选中设置属性域的字段,在【字段属性】区域中单击【属性域】下拉框,选择合适的属性域。

(3)选择相关的属性域。单击【确定】按钮,实现属性域的关联。

并非表或要素类中的所有对象都必须在相同字段中应用相同的【属性域】或默认值。要14

将不同的属性域和默认值应用到单个表或要素类中的同一字段,必须创建子类型。

3. 3. 2子类型

子类型是要素类中具有相同属性的要素的子集,或表中具有相同属性的对象的子集。可通过它们对数据进行分类。

子类型是特征类(或对象类)中特征(或对象)的次级分类。例如一个公路线要素类可以根据其字段类型的值细分为“高速公路”和“普通公路”两个子类型。

子类型通过创建编码值来实现,因此它必须与短整型或长整型数据类型的字段相关联。每个整数值代表子类型中的一个要素。例如。RoadClass子类型中的下列编码可能会代表街道要素类中的有效类:0一地方街道.1一二级街道,2一主街道。

1.创建子类型

在ArcCatalog中,可以很方便地为Geodatabase的要素类或表创建子类型,具体创建方法和操作步骤如下:

(1)在ArcCatalog目录树中,右击要添加子类型的要素类Rtext(位于“……cbp03新建文件地理数据库新建文件地理数据库.gdb dataset"),在弹出菜单中,单击【属性】,打开【要素类属性】对话框。切换到【子类型】选项卡,如图3. 20所示。

图3. 30【要素类属性】中的创建子类型

(2)在【子类型字段】下拉框中选择一个子类型的字段。在【编码】列表框中选择空白字段,输入新的子类型编码(整数型)。在【描述】列表框中输入新建子类型的描述

(3)在【默认值和属性域】区域输入每个字段的【默认值】和【属性域】。

注意事项:要将某个属性域与新子类型的某个字段关联在一起,则单击属性域字段,再单击下拉箭头,然后在域列表中单击相应的域,列表中仅显示适用于此字段类型的属性域。要将该子类型设置为默认子类型,单击下拉箭头,然后在子类型列表中将其选中。

(4)重复以上步骤,添加其他的子类型,可以在任何时候为子类型设置默认子类型。

15

(5)添加新子类型时,单击【使用默认值】按钮,新建的子类型则采用默认子类型的所有【默认值】和【属性域】。

(6)单击【确定】按钮,保存设置。

2.修改子类型

修改子类型方法和上述方法基本类似,只是创建是在原来没有子类型的基础上新建,而修改是在原有子类型的基础上进行改变,所以步骤和土述步骤基本一致。

3.3.3创建地理数据库注记

对于地理现象的表述,既有空间信息,又有非空间的属性信息。如要表现地理信息的属性,可以采用注记的方式。地理数据库注记存储于注记要素类中。与其他要素类一样,注记要素类中的所有要素均具有地理位置和属性。注记通常为文本,但也包括其他类型符号系统的图形形状(如方框或箭头)。每个文本注记要素都具有符号系统,其中包括字体、大小、颜色以及其他任何文本符号属性。

地理数据库注记包含两种类型:标准注记和与要素关联的注记。标准注记不与地理数据库中的要素关联。标准注记的一个例子是,地图上标记某山脉的文字,没有特定的要素代表该山脉,但它却是一个想要标记的区域。与要素关联的注记与地理数据库中另一个要素类中的特定要素相关联,反映了与其关联的要素中的字段值。例如,供水管网中的输水干管可以用其名称进行注记,而名称则存储在输水干管要素类的一个字段中。

1.创建标准注记要素类

创建标准注记类的操作步骤如下:

(1)在ArcCatalog目录树中,右击要创建新注记类的地理数据库,在弹出菜单中,单击【新建】→【要素类】,打开【新建要素类】对话框,如图3. 21所示。

(2)在【新建要素类】对话框中输入【名称】及【别名】,单击【此要素类中所存储的要素类型】下拉框,选择“注记要素”,如图3. 21所示。

(3)单击相关的【下一步】按钮,为注记要素类指定空间参考,设置【XY容差】,进入图3. 22所示对话框。

(4)在对话框中,输入【参考比例】,该比例尺应为注记正常显示时的比例尺,然后在【地图单位】下拉框中选择注记所用的单.位,此单位应与坐标系指定的单位相匹配。如果要素类的坐标系是未知的,则该单位默认为米。设置是否【需要从符号表中选择符号】。单击【下一步】按.进入图3. 23所示对话框。

图3. 21新建注记要素类 图3. 22设置新建注记要素类中的参考比例

16

图3. 23设置新建注记要素类中的注记属性

(5)在对话框中,【文本符号】为第一个注记类设置的默认文本符号属性。指定此类中注记的可见比例尺范围,若缩小或放大均显示注记,选中【在任何比例尺范围内均显示注记】单选按钮;若要设置注记显示的比例尺范围,则选中【缩放时若超过以下范围则不显示注记】单选按钮。如果要添加其他注记类,则单击【新建】按钮并指定注记类的名称。

图3. 24新建要素类的配置关键字设置

(6)单击【下一步】按钮,在文件或ArcSDE地理数据库中创建新注记要素类并且要使用自定义存储关键字,单击【使用配置关键字】单选按钮,然后从下拉框中选择要使用的关键字。如果不想使用自定义存储关键字,请选择【默认】单选按钮。如图3. 24所示。

(7)单击【下一步】按钮,添加字段。

17

(8)单击【完成】按钮,完成注记类创建。

2.创建与要素关联的注记要素类

以在要素数据集中创建与要素关联的注记要素类为例进行说明。其操作步骤如下:

(1)在ArcCatalog目录树中,右击要在其中创建新注记要素类的要素数据集,在弹出菜单中,单击【新建】~【〔要素类】,打开【新建要素类】对话框。

(2)在对话框中输入【名称】及【别名】,选择“注记要素”。选中【将注记与以下要素类进行连接】复选框,在下拉框中选择关联要素类,该要素类必须与要创建的注记要素类位于同一个要素数据集中。单击【下一步】按钮,进入图3. 25所示对话框。

图3. 25与要素关联的注记要素类标注设置 图3. 26与要素关联的注记属性设置

(3)输入【参考比例】。若安装了Maplex(智能标注引擎),则选择“ESRI Maplex标注引擎”;若没有安装,则选择“ESRI标准标注引擎”。单击【下一步】按钮,进入图3. 26所示对话框。

(4)指定包含第一个注记类文本的关联要素类字段,可选择一个【标注字段】或单击【表达式】来指定多个字段。为注记类设置默认的【文本符号】和【放置属性】,也可单击【标注样式】按钮来加载现有的标注样式。

(5)单击【比例范围】来指定所显示的注记比例尺范围,然后单击【SQL查询】按钮指定该注记类将只标注关联要素类中的某些要素。如果想要添加其他注记类,单击【新建】按钮并指定注记类的名称。

(6)单击【下一步】按钮,在文件或ArcSDE地理数据库中创建新注记要素类并且要使用自定义存储关键字,单击【使用配置关键字】按钮,然后从下拉框中选择要使用的关键字。如果不想使用自定义存储关键字,请保留对【默认】单选按钮的选择。

(7)单击【下一步】按钮,添加字段。

(8)单击【完成】按钮,完成关联注记的创建。

3.创建尺寸注记要素类

尺寸是一种特殊类型的地理数据库注记,用于显示地图上特定的长度或距离。尺寸可以指示建筑物或地块某一侧的长度,或指示两个要素(例如消火栓和建筑物拐角)之间的距离。在地理数据库中,尺寸存储在尺寸要素类中。与地理数据库中的其他要素类一样,尺寸要素类中的所有要素均具有地理位置和属性,可以位于要素数据集之内或之外。与注记要素一样,尺寸要素是图形要素,并且其符号系统存储在地理数据库中。 建新尺寸要素类时,可为18

其创建默认样式、自定义样式以及导入样式。以创建自定义样式要素类为例进行描述。其操作步骤如下:

图3. 27尺寸注记要素类样式选择

(1)在ArcCatalog目录树中,右击创建新尺寸注记类的地理数据库或要素数据集,在弹出菜单中,单击【新建】~【已要素类】,在【新建要素类】对话框中输入【名称】及【别名】,在【此要素类中所存储的要素类型】下拉框中选择“尺寸注记要素”。

(2)单击【下一步】按钮,如果该要素类是独立要素类,则选择或导入一个坐标参考系。

(3)单击【下一步】按钮,接受默认【XY容差】或输入所需的【XY容差】。单击【下一步】按钮,进入图3. 27所示对话框。

(4)输入【参考比例】,然后在【默认样式】中选择【我想创建自已的样式】(在此可以选择默认样式或导入样式)。单击【新建样式】按钮,进入图3.28所示对话框。

图3.28 【尺寸样式属性】对话框

19

(5)在【尺寸样式属性】对话框中.设置尺寸样式的特征。

(6)单击【确定】按钮,在ArcSDE或文件地理数据库中创建此要素类,使用默认配置关键字,或单击【使用配置关键字】单选按钮,井从下拉框中选择一个关键字。若是个人地理数据库则直接进入步骤(7)。

(7)单击【下一步】按钮,尺寸要素类所需的字段将会添加到要素类中。

(8)单击【完成】按钮,完成尺寸注记类的创建。

3.3.4创建关系类

关系类的一个明显特征就是基数(cardinality)。基数是描述一种类型的对象与另一种类型的对象之间关联的个数。关系的基数通常分为一对一、一对多、多对多。

Geodatabase支持两种关系:一是简单关系,二是复合关系。简单关系是指Geodatabase中相互独立的两个或多个对象之间的关系,如果对象A和对象B之间是简单关系,对象A从数据库中被删除后,对象B仍然存在。Geodatalase还支持复合关系,此时一个对象的生命周期控制另一个对象的生命周期,一个对象被删除,消息传送给相关对象,相关对象也被删除。

复合关系总是一对多的,但也可以通过关系规则限制到一对一。建立关系类后便可在修改对象时自动地更新其相关对象,以减少额外的编辑操作。

1.创建关系类

假定在Geodatabase中,一块地可以被唯一的拥有者占有,一个拥有者只能拥有唯一的址块,这是一对一的关系。创建一对一的关系类的操作步骤如下:

(1)在ArcCatalog目录树中,右击要创建新关系类的要素数据集dataset(位于“……chp03新建文件地理数据库新建文件地理数据库.gdb"),在弹出菜单中,单击【新建】→【关系类】,打开【新建关系类】对话框,如图3.29所示。

图3. 29【新建关系类】对话框

(2)在【新建关系类】对话框中,输入新关系类的名称“ParcelsOwners"。在【源表/要素类】列表框中,选择要素类“Owners"。在【目标表/要素类】列表框中,选择“Parcels"。单击【下一步】按钮,进入下一个对话框。

(3)选中【简单(对等)关系】单选按钮,建立简单的关系类(若建立复合关系则在这20

一步选中【复合关系】单选按钮。单击【下一步】按钮,进入下一个对话框。

(4)在【当从源表/要素类遍历到目标表要素类时,为该关系指定标注】文本框中输入“Parcels”;在【当从目标表/要素类遍历到源表要素类时,为该关系指定标注】文本框中输入“Owners”。选择关系的消息、传递方向。默认情况下,简单关系类的消息传递方向是不传递任何消息。单击【下一步】按钮,进入下一个对话框。

(5)在本例中,一个所有者拥有一个宗地,并且一个宗地由一个所有者拥有,关系是一对一关系,从而选择【1-1(一对一)】单选按钮。单击【下一步】按钮,进入下一个对话框。

(6)选择【否,我不想将属性添加到此关系类中】单选按钮,本例中的关系类不需要属性(若建立有属性的关系类则在本步骤选择【是。我要将属性添加到此关系类中】)。单.击【下一步】按钮,进入下一个对话框。

(7)在【在源表/要素类中选择主键字段】下拉框中为要素类或表选择主键,在【在目标表/要素类中选择外键字段(引用了源表/要素类中的主键字段)】下拉框中选择外键。此处均选择“OBJFCTID”字段。

(8)单击【下一步】按钮,打开关系类汇总信息框,检查为新关系类指定的选项,如果要进行更改,单击【上一步】按钮返回.

(9)单击【完成】按钮,完成一对一关系类的创建。

2.建立关系类规则

在创建关系类时,可使用一对一、一对多或多对多的基数对其进行创建。

关系通常需要在多个限制性条件下进行定义。例如,在宗地与建筑物的关系中,需要将每个建筑物与宗地相关联或指定一个宗地包含最多的建筑物数量。要防止忘记将一个建筑物与一个宗地相关联,还要防止将过多的建筑物与一个宗地相关联。建立关系类规则的操作步骤如下:

(1)在ArcCatalog目录树中,右击要建立规则的关系类ParcelsOwners(位于“... chp03新建文件地理数据库新建文件地理数据库. gdbdataset"),在弹出菜单中,单击【属性】,打开【关系类属性】对话框,切换到【规则】选项卡,如图3. 30所示。

图3. 30【关系类属性】对话框

(2)在【源表/要素类子类型】区域中,如果源类有子类型,单击想要与关系规则关联的子类型,如果源类没有子类型,无需选择,关系规则将应用于所有要素。

(3)在【目标表/要素类子类型】区域中,如果目标类有子类型,单击想要与源类中备选21

子类型相关的目标子类型。如果目标类没有子类型,无需选择,关系规则将应用于所有的要素。

(4)单击选中【目标表间关系】区域中的【指定相关联目标对象的范围】复选框,指定与每一个源对象相关的目标对象的范围(如果关系的源或目标均为多个,可以限制基数的指定范围)。在【源表间关系】中,关系的基数是一对多,关系源是1,则不能修改基数的范围;关系的目标是多个,可以修改其范围。

(5)单击【最大值】或【最小值】数值框,增加或减少相关目标对象的最大最小数目。

(6)重复上述步骤,指定这个关系类的所有关系规则。

(7)单击【确定】按钮,完成关系类规则的创建。

3.关系类中的连接

在ArcMap中,为了使用相关要素类的字段来符号化和标注当前要素,首先必须创建要素类、相关要素类或表的连接。一旦建立了连接,来自相关要素类或表的字段被添加到要素层中,可以利用这个字段符号化、标注和查询要素。相关字段的连接的操作步骤如下:

(1)在ArcMap内容列表中,右击要素数据层Road位于“……chp03新建文件地理数据库新建文件地理数据库. gdbdataset"),在弹出菜单中,单击【连接和关联】→【连接】,打开【连接数据】对话框,如图3. 31所示。

(2)单击【要将哪些内容连接到该图层】下拉框,选择“表的连接属性”(也可选择“另一个基于空间位置的图层的连接数据”)。

(3)单击【选择该图层中连接将基于的字段】下拉框,选择一个要连接的字段;单击【选择要连接到此图层的表,或者从磁盘加载表】下拉框,选择要素类的属性表;单击【选择此表中要作为连接基础的字段】下拉框,完成相关字段的连接。

图3. 31【连接数据】对话框

(4)单击【验证连接】按钮,验证成功后,单击【确定】按钮。

22

3. 4版本

版本是整个地理数据库在某个时刻的快照,包含地理数据库中的所有数据集。版本不仅备份地理数据库,相反,版本及其内部进行的事务可通过系统表进行追踪。这样可隔离用户在多个编辑会话中的工作,使得用户进行编辑时不必锁定版本中的要素或直接影响到其他用户,且无需备份数据。

利用版本化,多个用户可对ArcSDE地理数据库中的同一数据进行编辑,而无需应用锁或复制数据。用户始终可以通过版本访问ArcSDE地理数据库。连接到多用户地理数据库时,需要指定连接的版本,默认情况下将连接到DEFAULT版本。

3. 4. 1版本的注册

在数据库中要将数据注册为版本才能使用版本化编辑。将数据注册为版本后,会创建两个增量表以追踪针对数据执行的插入、更新和删除操作。版本化数据集包含原始表(称为业务表或基表)以及增量表中存储的任何更改。版本注册的操作步骤如下:

(1)在Arcatalog目录树中,右击要注册的数据集、要素类或表,单击【注册版本】。

(2)打开【注册版本】对话框,输入相关参数。

(3)单击【确定】按钮,完成版本的注册。

注意事项:a)版本数据以文件地理数据库形式保存在随书光盘中,使用时请将数据导入ArcSDE数据库中。

b)版本仅针对ArcSDE地理数据库。DEFAULT版本是ArcSDE的默认版本,为根版本且不能被删除,在大多数工作中,它是数据库的发布版本。可以将其他版本中的变更提交到DEFAULT版本,从而逐步维护和更新DEFAULT版本。此外,还可以像编辑其他版本一样,对DEFAULT版本直接进行编辑。

3. 4. 2版本的创建与管理

版本创建与管理的操作步骤如下:

(1)在ArcCatalog目录树中,右击数据库连接,单击【版本】→【版本管理器】,打开【版本管理器】对话框,如图3. 32所示。

(2)在【版本管理器】对话框已有版本处单击右键,在弹出对话框中,单击【新建版本】,进入图3. 33所示【新建版本】对话框。输入新建版本的【名称】和【描述】信息,选择恰当的权限选项,默认情况下为【私有】。

(3)单击【确定】按钮,完成操作。

图3.32【版本管理器】对话框 图3. 33【新建版本】对话框

23

1.在ArcMap中操作版本

1)创建新版本

创建新版本的操拍步骤如下:

(1)在ArcMap中加载【版本管理】工具条,单击【创建版本】按钮(必须有一个版本是激活状态)。

(2)打开【新建版本】对话框.输入新建版本名称及描述的内容,然后选择恰当的权限选项。

(3)单击【确定】按钮,完成操作。

2)切换版本

切换版本的操作步骤如下:

(1)在内容列表中的【按源列出】选项卡中右击ArcSDE数据库,在弹出菜单中,单击【切换】。打开【切换版本】对话框,如图3. 34所示。

(2)单击【版本类型】下拉框,然后选择“事务”或“历史”。

(3)单击列表框中的某个版本以对其进行选择。

(4)单击【确定】按钮,完成操作。

图3. 34【切换版本】对话框

3)刷新工作空间

在【版本管理】工具条中单击【刷新】按钮即可。

2.编辑版本

版本化设计的地理数据库能够有效地支持和管理数据库的交换,并且允许多用户同时对一个版本进行编辑。在ArcMap中每一个编辑在存储以前都是版本的一种表达方式。

当多用户同时编辑一个版本或是协调两个版本时,就会出现冲突。当两个或两个以上的书户对同一个要素进行编辑时,也可能出现冲突。为了确保数据库的完整性,当一个要素同时兰两个版本下编辑时,数据库就会自动报告错误。对于每个冲突,可以选择将要素恢复到它在编辑会话开始时的状态,也可以选择保持它在当前编辑会话中的状态,还可以选择用冲突编辑公话或目标版本中的要素来替换它。同一版本中发现的冲突在保存时,如果保存首选项设置习在任何情况下都自动保存更改,将无法查看冲突,此时会根据编辑选项对话框的版本化选项卡中设置的冲突规则对更改进行协调。协调的操作步骤如下:

(1)在ArcMap中,加载【版本管理】工具条。

(2)单击【版本管理l工具条上的【协调】按钮,打开【协调】对话框。

(3)单击【目标版本】,指定定义冲突的方式及解央冲突的方式,如图3. 35所示。

指定是【优先使用目标版本】还是【优先使用编辑版本】解决冲突。如果选择的解决规则是支持目标版本,则当前编辑会话中所有冲突要素均被替换为它们在目标版本中的要素。如果有多个用户在编辑同一个版本并检测出冲突,则用第一个保存的要素替换编辑会话的表示。如果选择的解决规则是支持编辑版本,则当前编辑会话中的所有冲突要索均优先于目标版本中的冲突要素。

24

(4)单击【确定】按钮,查看冲突,在对话框底部显示冲突要素(预协调版本和冲突版本),如图3.36所示。

注意事项:发生冲突的情况:在当前正在编辑的版本和目标版本中对同一要素进行更新;在一个版本中更新某个要素,同时在另一版本中删除该要素;在当前正编辑的版本和目标版本由修改在拓扑结构上相关的要素或关系类。图3. 36为第二种情况。

5)完成协调过程和查看所有冲突后,通过【提交】更改到目标版本,完成合并过程。

25

本文标签: 要素数据数据库地理属性