一个geodatabase能够容纳四种地理数据表示:
* 矢量数据表示feature
* 栅格数据表示图像、网格化(gridded)专题数据和表面(surface)
* 不规则三角网(TIN)表示表面
* 定位器(locator)和地址用来根据地址查找一个地理地点。
一个geodatabase可以在任一个商用关系数据库里存储所有这几种地理数据表示。这就使得地理信息主要由信息技术专业人员管理,也就让ArcInfo跟上了数据库技术的发展。
(1)用矢量数据表示feature
世界上很多feature都有很好的外形定义。矢量数据用一组带有关联属性的有序坐标xx简洁地表示了这些feature的外形。这种表示支持几何运算,例如,计算长度和面积,识别重叠和交叉,找到相邻的或附近的其他的feature。矢量数据可以用维数进行分类
* 点是零维的,它表示地理特征太小而不能用线或面来描述。点是用单个x,y坐标值来存储的。
* 线是一维的 ,它表示地理特征太狭窄而不能用面来描述。线是用一组有序的x,y坐标值来存储的。一条线段可以是直的、圆的、椭圆的或曲线的。
* 面是二维的,它表示宽阔的地理特征。面用一组围绕面的线段来存储,这些线段构成一个封闭的面。另外一种矢量数据类型是标注。这些标注是用于显示相关feature的名字和属性的描述性符号。
在geodatabase中,矢量数据有一个利用维数和关系直接存储feature的结构。一个feature数据集(dataset)是存储空间实体(feature)、非空间实体(对象)和它们之间关系的容器。拓朴关系用几何网络和平面图表示。geodatabase也存储一些有效的规则和域,当feature被创建或更新时用来确保它们的属性在与它们相关联的feature和对象的上下文关系(context)中继续有效。
(2)用栅格表示网格化(gridded)数据。
收集在geodatabse中的许多数据都是栅格型的,这是因为摄影机和成像系统是以像素值的形式将数据记录在二维的网格(grid)或光栅中的。像素是组成栅格的基本单元,它的值能描述多种数据。像素能够为一部分光谱存储光的反射,为图像存储颜色值,以及存储专题属性,比如植物类型,或表面值,或海拔高度。
(3) 用TIN表示表面
一个不规则三角网(TIN)就是一个表面模型。一个geodatabase在存储TINs时,将其作为一个带有高程值的节点和带有边(edge)的三角形的整体来对待。通过三角形的边,TIN的地理扩展能够插入任何有高程值(或z值)的点。TIN支持表面分析,比如:流域研究;在一个观测点能看到表面的哪些区域;表面特征的描述(如山脉、河流和山峰)。TIN还能描述自然地形的起伏。
(4) 用定位器(locator)查找地址
或许最普通的地理工作就是通过地址定位一个地方了。geodatabase能存储定位器和地址。定位器是一种利用全国邮政协定将一个地址转换成地理位置的方法。你可以找到任意这些点在地图上相对应的点feature。
面向对象数据模型中的feature
ArcInfo与前面版本不同之处在于将面向对象方法学应用于地理数据建模。开发者通过称为“geodatabase数据获取对象”(geodatabase data access objects)的面向对象软件类框架来操作数据对象。
面向对象有三个关键特点:多态(polymorphism)、封装(encapsulation)和继承(inheritance)。
* 多态是指一个对象类的行为(或方法)能够适应类的变化。举一个例子,不管是geodatabase、coverage还是shapefile里,feature的核心行为比如绘制、添加和删除操作绝大部分是一样的。* 封装是指类只能通过定义好的软件方法集才能获取,并组织成软件接口。geodatabase数据获取对象掩盖了数据对象内部细节并提供一个标准的编程接口。
* 继承是指对象类的定义能够包含其他对象类的行为和新增的行为。你可以在ArcInfo里创建一个自定义的feature类型,并继承标准feature的行为。比如,一个变压器对象可以从一个标准的ArcInfo feature类型比如简单的交叉点(junction)feature扩展(也称sub-type)而来。
统一数据模型
geodatabase数据获取对象是一种软件技术,它提供对各种数据源(比如geodatabase、coverage和shapfile)的地理数据的统一获取。ArcInfo开发者通过一系列数据对象,比如datasets、tables、feature classes、rows、objects和features,来操作地理数据。这些对象都包含了一个共用一致的地理数据视图。由于有了这种统一数据模型,ArcInfo用户能够{zd0}程度以同样的方式操作geodatabase、coverage和shapefile。统一数据模型通过强调数据的共有特性来简化了数据的操作。
可扩展feature
geodatabase一个重要的方面就是你可以有选择地创建自定义feature,比如变压器、道路,从而代替了点和线。对于ArcInfo的用户来说,这就意味着变压器或者道路不仅拥有标准点feature和线feature的标准绘制、查询和编辑行为,而且还有附加的行为。你可以规定变压器必须接触到一个电线杆以及必须通过这个电线杆垂直于电力线。或者,当编辑一条道路时,所有它的分段必须相切。数据建模者能够使用标准的feature类型来实现丰富的数据模型。对于高级应用来说,开发者能够扩展标准的feature类型,使用面向对象的类型继承技术来创建自定义feature。任一个你创建的自定义feature拥有同样的性能和功能,就像ArcInfo提供的标准feature类型那样。这就为复杂应用的开发提供了无限的机会。
feature和面向对象
geodatabase中得feature实现为一组相关联的表。其中一些表表达了feature的集合。其他表表示了feature间关系、有效性规则和值域。ArcInfo管理这一结构和这些表的整合,并通过地理数据获取对象提供了面向对象的地理数据。所有的用户和绝大部分开发者可以不用了解也无需关心geodatabase的内部结构细节。ArcCatalog是一个用来创建、修改和精化geoudatabase结构的用户接口应用。数据的对象视图隐藏了geodatabase大部分数据库物理结构,使你只需关注如何建立一个地理数据模型。