首 页 | 新 闻 | GIS | GPS | RS | 开发应用 | 数据库 | 下载中心 | 企业名录 | 论 坛


1.2 地理数据模型的发展

    地理数据模型是对真实世界的抽象,它是由一系列支持地图显示、查询、编辑和分析的数据对象组成的。
    ArcInfo 8 引入了全新的面向对象的数据模型——geodatabase 数据模型。它能够表达要素的自然行为以及这些行为的关联。这个全新的数据模型的意义是非常重大的。为了我们能够很好理解Geodatabase,下面预先回顾以前使用过的地理数据模型。
1.2.1 CAD 数据模型
最早的计算机制图系统,使用阴极射线管的显示线绘制矢量地图、使用行式打印机上的加印技术绘制栅格地图。以此为起源,十九世纪六十到七十年代出现了精致的绘图硬件工具以及能够使用合理逼真制图技术将地图符号化的制图软件。
    这一时代,地图通常用一般的CAD(计算机辅助制图)软件来制作。CAD 数据模型以表示点、线、面的二进制文件格式存储地理数据。但是这些文件中,不能存储足够多的属性信息。地图图层和注记标注是基本的属性描述。
1.2.2 Coverage 数据模型
    1981 年,ESRI(Environmental System Research Institute,Inc.) 推出了它的第一个商用GIS 软件,ArcInfo,它实现了第二代地理数据模型——coverage 数据模型(也称地理关系数据模型)。这个模型有两个关键之处:
  • 空间数据与属性数据相结合。空间数据存储在二进制索引文件中,使得显示和访问最优化。属性数据存储在表格中,用等于二进制文件中要素数目的行来存储,并且属性和要素使用同一ID 连接。

  • 矢量要素之间的拓扑关系也被存储。这意味着,线的空间数据记录包含这些信息:哪些结点分割线、可以推算有哪些线相连, 同时还包含线的右侧及左侧有哪些多边形的信息。


    在Coverage数据格式中,要素集中的点、弧段、多边形要素是和属性表是一一对应的Coverage 数据模型的优势是用户可以自定义要素表格;不仅可以添加字段并且还可以建立与外部数据表格的关联。
    因为计算机硬件和数据库软件的性能局限,当时把空间数据直接存储在关系数据库是不可能的。所以,coverage 数据模型将二进制文件中的空间数据与表格中的属性数据连接起来。
    尽管将空间数据和属性数据分开存储,coverage 数据模型依然在GIS 领域占统治地位。其原因在于:coverage 数据模型使追求高性能的GIS 成为可能,储拓扑关系的存储使得高级的地理分析操作和更精确的数据输入得以实现。
1.2.2.1 Coverage 数据模型的局限
    Coverage 数据模型有个重大缺陷—— 要素是以统一的行为聚集的点、线和面的集合。也就是说,表示道路的线的行为和表示溪流的线的行为是一模一样的—— 显然,这并不是我们所需求的。
    Coverage 数据模型支持的这种特定的行为加强了数据集的拓扑整合。例如在coverage中,如果你穿过多边形添加一条新的弧线,多边形会被自动分成两块。
    但是光有上述的这些行为对于现实世界的模拟还是不够的。我们还需要支持真实世界对象的特殊行为。比如,溪流沿山坡线向下游并且当两条溪流汇聚时,其流量应是上游两条溪流流量的总和。另外,当两条道路交叉的时候,在它们的连接处就应该有一个交叉路口,除非有另外的一个天桥或地道。这些事情在coverage 中是很难完成的。
1.2.2.2 在coverage 中自定义要素
   在coverage 数据模型中,ArcInfo 应用开发者已经取得了一些显著的成果,他们用AML语言编写宏代码来向要素添加某些类型的行为。在coverage 中,许多复杂的、大规模的、特定的工业应用得到了成功模拟与创建。
    然而,随着应用变得复杂,当需要一种更好的关联要素及其行为的数据模型的时候,在coverage 的基础上编写再好的代码也无法满足应用的需求。并且,对于开发商来说,要将数据模型与最新的应用代码保持一致,是一个难度太大的问题。因此,对新一代地理数据模型出现的需求越来越迫切,在这个新模型中,要求具有能够将要素与行为紧密结合的体系框架。
1.2.3 Geodatabase 数据模型
    ArcInfo 8 引入了一种新的面向对象的数据模型——geodatabase 数据模型。在这个全新的数据模型中,通过给要素添加更贴切的“自然”行为,从而使得GIS 数据库中的要素更加智能化,在Geodatabase 中,还允许在要素之间定义几种类型的关联。
Geodatabase 数据模型中,数据的物理模型与逻辑模型的概念联系更加紧密。Geodatabase中的数据对象大多都是用户在逻辑数据模型中定义的对象,如业主、建筑物、宗地和道路等等。
    其实, 有了geodatabase 数据模型, 你就可以在不需要编写任何代码的情况下,轻松实现大量的“ 自定义” 行为了—— 这些所谓的“自定义” 行为在以前的数据模型中,都是需要编写代码才可以实现的。这些行为可以通过域、验证规则和ArcInfo 软件框架中为Geodatabase 提供的其它功能来实现。有了geodatabase 数据模型,只有在要素需求特别专业化的行为操作的时候才需要用到代码编写。
1.2.4 对象交互作用的方案
    面向对象的数据模型是十分重要的,可以浏览底下描述的要素所需要执行的常见的任务工作。从这些执行方案中,你可以体验到面向对象数据模型的优点。下面我们可以看看geodatabase 数据模型的一些特定性质。
1.2.5 添加和编辑要素
    当你向GIS 数据库添加地理要素时,你需要根据一些规则来确保数据的准确性:
  • 如果需要对要素赋值,那么这些要素必须是预先定义的一组允许的值域范围内的一个。例如,地块要有特定的土地利用类型,如居民地、农业用地或工业用地。

    每个要素对应一个记录,记录的某个列值可以通过域(Domain)限定
  • 只有在某些条件满足时, 要素才能与其它要素邻接或相连。把酒店放在学校附近是违法的。城市道路不能与高速公路相连,除非有如辅桥这样的连接设备。


    通过空间位置确定在学校周围有哪些不符合距离要求的酒吧

    道路交通中的主要设施之间必须通过相应的辅助设施实现连通
  • 某些要素的集合要与它们的自然空间分布一致。河流是由上游向下汇流的, 汇聚点的流量是上游河流的总流量。


  • 要素的几何形状遵从它的逻辑分布。组成道路的线和曲线应该是正切的,建筑物转角通常是直角。

1.2.6 要素之间的关联
    现实世界中的对象都与其它对象有着错综复杂的关联。从GIS 角度出发,这些关联可以划分为三种:拓扑、空间和普通(general)。
    以下是各个类型的关联的实际例子:
  • 当你在一个电力设施系统中编辑要素时,你要保证一级线路和二级线路的末端正确连通并且可以在该电力网络上做跟踪分析。当你在连通系统中载入和编辑要素的同时, 需要定义一系列的拓扑关系。


  • . 当你处理一幅有建筑物、街区和学校的地图时,你可能需要决定在哪个街区创建某一特定建筑物、在学校区域中应该有哪些建筑物,还有哪个街区应该不包含建筑物。这些都属于GIS 的基本功能—— 判断要素是否在另一要素内、是否接触、在另一要素外或与另一要素重叠。空间关联是从要素的几何形状来获取的。


  • . 还有一些对象可能在图上无法表现关联。比如地块与业主存在关联,但业主并不能够表现为地图上的要素,使用普通的关联就可以将地块和业主连接起来。另外,对于地图上某些要素之间具有的关联,然而它们的空间关联可能很难判断。比如,用度表在变压器邻近,但它们并不接触。在狭促的地图中,很有可能无法使用空间关联将用度表和变压器的关联表达出来, 这时我们需要使用一般关联, 将这两个要素关联在一起。

1.2.7 制图显示
    在大多数情况下,用户都可以使用预先定义好的符号绘制要素,但有些时候,现有的符号库无法满足制图需要,因此需要对地图符号进行定制。比如:
  • 显示等高线的时候,你要在等高线的平直部分高程标注, 比如以一个平均4 英寸的间距标注,且不能遮盖其它要素。
  • 当你在一幅内容详尽的地图上绘制道路时,你需要将道路绘制成平行线且在相交处有明显的交点。

  • 当多条输电线物理地搭建在同一个电线杆上,你需要以一组平行线来区分描述它们,并且定义它们之间的间距。
1.2.8 互操作分析
    动态地图显示中,用户可以对要素进行操作、获取要素的属性及关联,并进行分析操作。比如:
  • 操作地图中的显示要素, 使用表格查询属性,更新要素属性值。

  • 查找电力网络中需要维修的线路, 分析得到所有受影响的用户, 并做出邮件列表通知单。
1.2.9 Geodatabase 数据模型的优点
    Geodatabase 对要素建模是十分有效的,下面列举说明。使用面向对象的数据建模, 可以定义自己的对象类型,通过定义对象之间的拓扑、空间和普通关联,以及获取它们之间的相互作用关系,以便更自如地表现地理信息。以下是Geodatabase 数据模型的一些优点:
  • 地理数据统一存储的仓库。所有数据都能在同一数据库里存储并中心化管理。


  • 数据输入和编辑更加准确,通过智能的属性验证确定减少很多的编辑错误—— 这对于很多用户来说,便是采用geodatabase 数据模型的最根本原因

  • 用户更为直观地处理数据模型。有了准确的设计,geodatabase 包含了与用户数据模型相对应的数据对象。操作Geodatabase 的数据,与处理一般的点、线和多边形要素不同,用户可以针对操作他们感兴趣的现实对象一样,比如变压器、道路和湖泊等等。

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

  • 可以制作蕴含丰富信息的地图。通过直接在ArcInfo 制图应用窗口——ArcMap 中应用先进的绘图工具, 可以更好地控制要素的绘制,还可以添加一些智能的绘图行为。有一些特殊的专业化绘图行为的操作也能够通过编写代码实现。

  • 地图显示中,要素是动态的。在ArcInfo 中处理要素时,它们能根据相邻要素的变化做出响应。你也可以将要素与自定义查询或分析工具关联到一起。

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

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


  • 多用户并发编辑地理数据。Geodatabase 数据模型允许多用户编辑同一区域的要素,并可以协调出现的冲突。
    确切地说,要实现上面列举的某些优点,是可以不需要使用面向对象的数据模型的。但是,如果不使用这种数据模型,你发现会遇到很多的困难和麻烦—— 很多时候,你都得编写连接要素的外部代码,但是这样的代码编写十分复杂,并且容易出错。总的来说,Geodatabase数据模型的主要优点是它搭建了一个框架,这样用户便可以轻易地创建智能化要素,模拟真实世界中对象之间的作用和行为。
作者:Michael Zeiler
译: 张俊、孙朝阳、庄怀耀等
校:邢超
整理:中国GIS资讯网

声明:本书版权系ESRI 出版社所有。本书是ArcGIS 学习精品, 译校、整理不做于商业用途, 属个人爱好,
与广大GIS 爱好者共同分享。

 
CopyRight © 2003-2005 www.Gissky.com All Rights Reserved
技术支持:中国GIS资讯网工作室  中南大学GIS研究中心
中国GIS资讯网版权所有   粤ICP备 05036938 号