A. 地理信息系统中地理图层的概念
信息是向人们或机器提供关于现实世界各种事实的知识,是数据、消息中所包含的意义,它不随载体的物理形式的各种改变而改变。信息具有以下特点:客观性、适用性、传输性、共享性。数据是通过数字化或直接记录下来的可以被鉴别的符号,不仅数字是数据,而且文字、符号和图像也是数据。地理信息属于空间信息,它通过经伟网或公路网等建立的地理坐标来实现空间位置的识别。地理信息还具有多维结构的特征,即在二维空间的基础上实现多专题的第三维结构,而各个专题型实体型之间的联系是通过属性码进行的,这就为地理系统各圈层之间的综合研究提供了可能,也为地理系统多层次的分析和信息的传输与筛选提供了方便。地理信息系统是指专门处理地理空间数据的计算机系统。从外部看表现为计算机软硬件系统;其内涵却是由计算机程序和地理数据组织而成的地理空间信息模型,是一个逻辑缩小的、高度信息化的地理系统。
B. 地理信息系统
在农用地分等中需要对地块(图斑)进行空间定位、面积测算、类型调查以及权属确认等,图件是辅助农用地分等最重要的技术手段,这些图件包括土壤图、地形图、土地利用现状图、坡度图等。这些图件如果采用手工方式绘制,操作起来费时费力,更新时也极其不方便。采用GIS技术可以轻松地完成这些工作。GIS技术在农用地分等中的应用贯穿于工作的整个过程。该工作实质上是针对农用地这一特定空间对象所做的多因素叠加综合分析,以及基于此分析的进一步数据挖掘。在农用地分等中,GIS技术主要应用在以下几个方面。
(一)数据库建设
1.数据采集、检验与编辑
主要用于获取数据,保证农用地分等工作中的数据在内容与空间上的完整性、数据值逻辑上的一致性等。而这一过程的工作量超过全部分等工作量的一半。该过程主要采用自动化扫描输入与遥感数据集成的方法,扫描后的数据进行自动化编辑与处理后成为工作的基础数据(底图)。
2.数据处理
农用地分等工作中,数据的初步处理主要包括数据格式化、转换和综合。由于各地采用的专业软件不同,在开始工作前必须对各种来源的数据进行数据格式、坐标系统和比例尺的统一,使之满足农用地分等工作的具体要求,同时为分等成果数据的共享打下基础。数据的格式化是指不同数据结构之间的转化;数据比例尺的变换涉及数据比例尺缩放、平移、旋转等方面,其中最为重要的是投影变换;数据综合包括数据平滑、特征集结等。
3.数据的存储与组织
这一部分工作在农用地分等工作中表现为空间数据与属性数据的对接,是一个数据集成的过程,也是建立分等数据库的关键步骤,涉及空间数据和属性数据的组织。在地理数据组织与管理中,最为关键的是如何将空间数据与属性数据融合为一体。采用GIS软件系统将二者分开存储,通过唯一标识码(单元编码)连接起来。
以上部分构建了分等数据库,是农用地分等工作开展的前提和基础。而在农用地分等过程中同样应用了GIS技术,主要表现为采用GIS技术的空间分析技术提取和传输空间信息。
(二)在分等计算过程及省级汇总中的应用
1.空间叠加
农用地分等中同一个图斑受多种因素(主要表现为10个分等因素,涉及土壤图、地形图、坡度图、水文图等图件叠加)覆盖,需要采用叠置分析方法,按照面积或者中心权重进行运算。通过叠置分析将同一地区、同一比例尺的数据层进行叠置,生成一个新的数据层(含有分等相关属性的图层),实现了各个图斑具有多重属性和各叠置层目标属性的统计计算。
2.缓冲分析
在因素量化的过程中大量采用了缓冲区分析方法计算确定某一因素的影响范围。将点、线、面等因素,根据各自的衰减方式计算得出缓冲区多边形,采用叠置分析的方法将分值赋予各个图斑。这是GIS重要的和基本的空间分析功能之一。
3.空间分析与计算
在实现三级分等成果的联动追溯查询中还使用了包括泰森多边形分析在内的多种分析方法,解决市级图斑与县级图斑、省级图斑与市级图斑的一对多关系。泰森多边形可用于定性分析、统计分析、邻近分析等。如用离散点的性质来描述泰森多边形区域的性质;用离散点的数据来计算泰森多边形的数据;判断一个离散点与其他离散点相邻时,可根据泰森多边形直接得出。
4.地形分析
主要是利用等高线内插生成DEM或DTM模型描述地表起伏状况,用于提取各种地形参数,如坡度、坡向等数据。
(三)在数据库管理信息系统中的应用
1.用户管理
用户管理主要指用户的添加、删除和用户属性的编辑。该程序是系统安全运行的重要保证。通过菜单或工具栏,用户可以进行关联查询,通过省或市的数据查询县级数据,或者通过市、县的数据查询该数据相对应的省、市数据;还可查询汇总图中的某个分等单元是由工作底图中的哪些分等单元综合而成。
2.综合查询
综合查询指对图形数据和属性数据的提取和显示,主要有单目标查询、多目标查询和条件查询。单目标查询指通过鼠标选择某个分等单元,以查看其所有的属性。多目标查询指由多边形框选择多个分等单元,然后在列表中查看每个分等单元的属性。条件查询指使用界面提供的SQL语句编辑工具生成一个SQL条件语句,然后根据它来查找与条件相符合的目标,并把他们突出显示。
3.空间量算
空间量算包括空间位置、长度、面积的度量和图层的管理。图层管理包括图层的添加和删除、图层的移动、图层数据的表现形式和图形信息的提示方式。
4.图形操作
对图形的操作主要指对图形的浏览,主要有缩放、漫游、全图显示、导航图的显示、分等单元的突出显示、前景色及背景色的设置以及图层的分色显示。
5.数据分析
数据分析主要指数据的统计和分析。数据可以是当前的选择集,也可以是某个图层的全部对象。选择分类的字段,如镇、自然质量等,可对选择统计的对象进行和、最大值、最小值、计数等的统计,并以表的形式表达出来。
6.文件操作
文件操作主要是外部数据的输入和输出。主要分为两个方面,即所有图层的基本信息(包括图层的名称、类型、保存的路径等)导入工作环境和各图层文件的生成。图层信息的入库通过程序代码自动录入。
C. 地理信息系统功能的图形显示
GIS来源于地图,也离不开地图。GIS的一个基本功能就是能根据用户的要求,通过对数据的提取和分析,以图形的方式表示结果。当GIS数据被描绘在地图上时,信息就变得容易理解和解释。GIS不只是为了有效地存储、管理、查询和操作地理数据,更重要的是以可视化的形式将数据或经过深加工的地理信息呈现在用户面前,方便地通过图形认识地理空间实体和现象及其相互关系。
地理信息系统为用户提供了许多用于地理数据表现的工具,其形式既可以是计算机屏幕显示,也可以是诸如报告、表格、地图等硬复制图件,尤其要强调的是地理信息系统的地图输出功能。一个好的地理信息系统应能提供一种良好的、交互式的制图环境,以供地理信息系统的使用者能够设计和制作出高质量的地图。
因为地理比例尺对于地理研究的性质具有决定意义,所以需要根据不同的详略程度,允许地图存在多级比例尺数据源。用户对地理环境既需要有宏观上的认识,同时也有观察局部细节微观上的要求。因此,为了能够全面、充分地反映系统所关心区域的空间地理信息,有必要采用多种比例尺共存的方式,以满足GIS的多层次需求。某一地区在某一比例尺条件下的地理资料,不仅代表了在该种比例尺条件下对于该区域地理空间结构的抽象和概括,而且也代表了在该种比例尺条件下对于该区域地理功能的抽象和概括。
多比例尺GIS中空间数据的最大特点是对同一地理实体的数据表达不同。
由于在地理信息系统中的地图数据采取了分层组织管理方法,因而在显示时也可以采取该方法,即同比例尺条件下可以采用多图层方式来表达地理实体。
除了常见的二维平面地图之外,地理信息三维显示也成为地理信息一个重要的表现方式。利用三维显示技术,可以更为直观形象地表现地理环境信息,更容易让用户接受和理解。
D. 地理信息系统的数据模型包括那些相互联系的方面试举例说明
1.引言
经过几十年的发展,今天的GIS系统已经具备了较强的数据存贮、管理和输入输出功能,但目前大多数的GIS仍然是以数据为中心的,在完整表达客观地理世界、进行高层次的空间分析和直接提出决策方案的能力方面还远远不够,导致这种情况的根本原因在于现有GIS的数据模型不能准确地表达客观地理世界。为此,作者为现有GIS软件总结了两种典型的数据模型[1]:拓扑关系数据模型和面向实体的数据模型,并分析了它们各自的优缺点,指出应该在整体论的基础上为地理空间建立一个能够直接反映人们认知的整体数据模型。
2.面向对象的整体数据模型
GIS本质上是对客观地理世界的近似模拟,其理想状态应该是尽可能准确地反映地理世界,同时做到数据量最小,又便于人们从中获取所需要的信息和规律。要达到这种理想状态,我们需要做好两步工作:1)准确理解地理空间;2)为地理空间建立面向对象的整体数据模型---一个基于地理空间整体论、完全以面向对象方式组织的GIS数据模型。
地理空间的理解可以简单概括为[1]:地理空间是一个目标组合排列集,每个目标或说对象都具有位置、属性和时间信息,及与其它对象的拓扑关系、语义关系等。基于这一认识,我们可以得到,表达地理空间的整体GIS数据模型有如下特征:
■ 将地理空间按照人的思维方式理解为基于目标的空间和定义在地球表层目标集上的关系。除了要研究对象的几何位置及拓扑关系外,还要重视研究对象间的语义关系。
■ 整体数据模型虽然要求我们将客观世界作为整体看待,但在执行具体的数据组织时也需要对众多的地理实体进行分层。分层是基本的和必要的,但由于为一种目的进行的分层很难满足另外的需求,因此重要的不是提供一种通用的分层,而是对方便地加入、删除对象等维护层的操作予以足够的支持。复合图层含有不按对象维数分层的含义,能够很好地体现客观 世界的整体特征,为不同层中的关联对象或用户感兴趣的不同类型对象提供了一个集中存贮与交互的独立空间,整体数据模型尤其应该增强复合图层的功能,使用户能够自由地加入、删除、修改、查询任意类型(点、线、面和复杂实体)的地理实体,同时能够进行强大的空间分析;
■ 虽然传统的GIS数据模型常将基于对象的模型用矢量结构表达,而将基于场的模型用栅格结构表达[2][3],其实可将对象和连续场这两种看似对立的模型统一在面向对象的整体数据模型中,因为面向对象的方法作为一种框架不仅可以描述基于对象的模型,也可以描述基于场的模型[3][4]。
■ 空间对象是处在三维空间中的,并具有多尺度特征。
■ 整个数据模型完全以面向对象的方式组织。
由上可见,在整体数据模型中,地理空间被表达为一个具有相互关系的对象集。每个对象不仅具有自己的几何信息、属性信息和时间信息,而且与其它对象之间具有拓扑关系和语义关系。所有这些信息在整体数据模型中都处于同等重要的地位,其中起着连接作用的是对象本身。根据对象的形状特点,同时为了方便计算机实现与管理,我们可以将地理空间中的对象分为5种基本对象:点、线、面、注记和复杂对象。其中,前面四种对象比较简单,统称为简单对象,这里只介绍第5种对象---复杂对象。
复杂对象是由简单对象组合派生的,可以划分为如下两种类型:
1)单纯型复杂对象
多个同样类型的对象合并成为一个单纯型复杂对象。·复杂点:点群,由多个点状对象构成的集合,整个集合是一个对象,如聚集在一起的多个水文站等;•复杂线:线群,由多个线状对象构成的集合,整个集合是一个对象,如一线状水系,一径流网络等;·复杂面:面群,由多个面状对象构成的集合,整个集合是一个对象,如一湖泊群,一海洋群岛等。
2)混合型复杂对象
点、线、面共存的复杂对象。混合型复杂对象的混合种类包括:点与线混合,点与面混合、线与面混合及点、线、面同时存在的混合,多个不同类型对象合并成一个就构成了混合型复杂对象,因此混合型复杂对象不属于点、线、面中的某一基本类型,在属性上也就不具备这些基本类型对象的一些特有信息,如线对象的长度,面对象的面积和周长等,这在数据库表结构的设计中要予以必要的考虑。
单纯型复杂对象可以在相应类型的简单对象集中存贮和在相应图层中显示,也可以在复合对象集中存贮和在复合图层中显示;混合型复杂对象只能在复合对象集中存贮和在复合图层中显示,它们不适合存入简单对象集,也不宜在点、线、面简单图层中显示,因为它们的加入会破坏简单对象集和简单图层的专题特性,也不便于管理。
上面介绍的这5种对象在地理空间中都是以三维形态存在的,但由于三维GIS建设的成本较高,在技术实现上也有相当的难度,而目前二维GIS能够满足大部分实际需求,因此我们在表达三维客观地理世界、实现整体GIS数据模型时以开发二维GIS为主,而在某些需要查看具体三维细节的地方提供机制以表现其三维结构,例如可以另开辟一个小的三维地图窗口来表现对象的三维形状、结构和拓扑关系等。
时间问题[5]-[8]、语义关系和拓扑关系[9]-[11]一直是GIS界长期研究的热点,虽然它们在整体数据模型里面占有很重要的位置,但是本文的重点在于确定整个数据模型和系统的总体组织,对它们的具体讨论将在以后逐步展开。
3 系统数据组织
3.1 对象集
对象集是指由众多对象构成的集合。划分对象集的目的在于存储和管理对象的方便,它可以是由同种几何类型的对象构成的集合,也可以是由不同类型对象组成的集合。在整体GIS数据模型中,有如下三类对象集:
■ 简单对象集:包括简单点对象集、线对象集、面对象集和注记对象集四类;点对象集是由简单点对象或单纯型复杂点对象组成的集合,线对象集是由简单线对象或单纯型复杂线对象组成的集合,面对象集是由简单面对象或单纯型复杂面对象组成的集合。简单对象集也可称为专题对象集。
■ 复合对象集:由简单点、线、面对象、注记对象、单纯型复杂对象或混合型复杂对象等不同类型对象组成的集合。在这种对象集合中,可以包含任意类型的对象元素;
■ 场:场是由有机关联的对象构成的集合,其中的元素在几何上不再相互独立,而是紧密相关,这一点与以上两种对象集不同。如TIN、GRID、影像和网络等。场中的元素对象一般较多,场本身就是一个对象集,因此我们在概念上不再另设场对象和场对象集。
由上可见,对象类型与对象集类型并不是完全一一对应的,例如:单纯型复杂线对象与简单线对象一样分别存贮与显示在简单线对象集和简单线图层中,不必要专门的单纯型复杂线对象集和单纯型复杂线图层来存贮和显示。
除了点、线、面三种单纯型复杂对象外,其它各种对象(点、线、面简单对象、注记对象和混合型复杂对象)与对象集类型都是一一对应的。另外,场是一种对象集,不过由于其中的元素并不是场对象(没有场对象概念),因而场与场中的元素也不存在一一对应的关系,但在实现时开发者完全可以设计一个场类来管理各种各样的场。
值得指出的是,整体GIS数据模型认为人们感知的客观世界是一个由众多类型不同的地理实体组成的整体世界,而不是人为分割的、僵化的对象层,但由于分层能够为GIS管理和显示地理对象提供极大的方便,因此我们在基本分层(在本文中是对象集)的基础上,特别提出并强调复合对象集的概念,以此来表达和实现整体GIS数据模型的整体思想。复合对象集打破了GIS中传统分层的框架,为不同对象集中的关联对象或用户感兴趣的不同类型对象提供了一个集中存贮与交互的独立空间,但同时也为系统开发和管理带来了一定难度。比如,单纯型对象集的显示、修改、存贮、管理、分析和输出都可采用统一的方法进行,而复合对象集的这些操作则必须在内部进行分别处理(按对象类型)。虽然如此,但单纯型对象集与复合对象集都是为了满足不同的用户需求而设计的,二者在对象组织、系统实现和空间分析上各有优缺点,一个功能强大的GIS应该同时支持它们。
3.2 图层
对象集加上自己特有的显示属性即是图层,因此对象集类型与图层类型是一一对应的。由于对象集包括点、线、面、注记对象集、复合对象集和场6种基本类型,因此图层也有相应的点、线、面、注记图层、复合图层和场图层6种基本类型。对象集用来存贮对象的空间与属性数据,而图层则用来设置对象集的显示风格并控制对象集的显示范围、显示比例和操作特性(如可显示、可选择、可编辑和可捕捉等),二者各司其职又相互联系。在对应关系上,一个图层只对应一个对象集,而一个对象集却可显示在不同的地图窗口中对应多个图层,因此对象集与图层之间的关系是一对多的关系。
表1 各种对象的存贮与显示对比表
Tab.1 Contrast of store and display of all kinds of objects
对象类型
存贮的对象集
显示的图层
点与单纯型复杂点
简单点对象集表
简单点图层
线与单纯型复杂线
简单线对象集表
简单线图层
面与单纯型复杂面
简单面对象集表
简单面图层
混合型复杂对象
复合对象集表
复合图层
场
多个非同类简单对象集表
场图层
注记对象
注记对象集表
注记图层
3.3 数据库
我们这里所说的数据库是指广义的数据库,其定义为“存贮对象的集合”。物理上不管是以文件形式还是以商业数据库形式存在,只要存贮有对象,我们都称为数据库。就综合性能而言,一般是文件系统在小量数据方面有自己的长处,而商业数据库则对大量数据的支持有着文件系统无法替代的优势。
3.4 地图或地图窗口
对象集是用来存贮地理对象的,图层是用来控制对象的显示的,两者都不等同于地图或地图窗口。我们的地图或地图窗口是一种框架,是显示对象的实际载体,也是控制图层并对之进行操作和分析的主体。
3.5 工作空间
工作空间是为系统管理方便而设计的,相当于一个大的仓库,里面存贮有数据的基本信息,如数据库的名字与尺寸、地图和其它资源(如点、线、面型符号)。系统运行时可调入数据库对之进行管理控制。
4 数据存储与访问
4.1 存储结构
4.1.1 简单对象集对应的表结构
如前文所述,对象集包括点、线、面、注记对象集、复合对象集和场6种基本类型,因此在数据库中应该设计与之对应的6种表。对于文件系统而言,表的概念可以扩展为结构,也就是说用6种结构来存贮这些对象集的各个元素。其中,结构的成员与表的字段是一一对应的,为了操作方便,我们还可以定义一个专门的类来管理这个结构。对于商业数据库而言,表就是关系数据库系统中的普通表,不必进一步考虑。
不同的对象类型对应不同的表,但所有对象集都可采取形如表2的结构,当然不同类型的对象集在空间坐标串的组织及属性字段名字上会有不同。由于点对象与单纯型复杂点对象除了空间坐标串组织方式稍有不同外(不过都是用同样的方法打包成外部不可见的二进制块,可视为相同),其余字段都相同,因此它们可以共存于一个表,也可以一起显示在同一图层中,在各方面的处理上几乎没有什么差别。线对象与单纯型复杂线对象、面对象与单纯型复杂面对象的关系与此类似,也可同存于一个表和在同一图层中显示。当然,简单对象与单纯型复杂对象的空间坐标串的组成结构不同,单纯型复杂对象应该有能够识别多个同类型简单子对象的格式或标记。对于混合型复杂对象,必须用单独的混合型复杂对象表存贮,表结构中除了没有简单对象公有的长度、面积等字段外,其它字段均可根据需要进行设置,结构形式仍同于表2。
表2 简单点、线、面对象及单纯型复杂点、线、面对象表
Tab.2 Data structure of all kinds of objects
对象ID
用户ID
空间信息
语义关系1…
属性1…
属性n
…
…
…
…
…
…,三维结构与时间表存在的标志
由上可见,我们并未如拓扑关系模型那样在面对象表的空间坐标字段里用一系列弧段标识号来表示面对象的组成,而是直接用其坐标串。虽然这样在多边形的公共边上会有重复存储现象出现,但在计算机存储设备日益增大的今天,这已经不再是主要问题,相反这种坐标存储方式使面对象表不再依赖线对象表,其中的元素也变成为相对独立、完整的对象,同时也将提高系统访问数据的速度。这种方式是面向实体的数据模型和面向对象整体数据模型在内部实现机制上的一个特色,是一种以空间换时间的存储方式。
4.1.2 三维结构与时间属性的表结构
目前的GIS仍然以二维GIS为主,但有时又需要查看少数对象的三维结构与时间特性,因此我们在整体GIS的数据库中为这部分对象单独设计了“三维结构与时间表”。为了讨论方便,我们把上面的表2称为主表,而把这个表称为副表(表3)。副表中并不存储整个对象集的全部对象,而是只存储部分具有三维结构与时间特性的对象。至于哪些对象能有三维结构与时间属性存贮在副表中,则要看它们在主表中最后一个属性字段里的标志值。如果标志值为真,则有,否则在三维结构与时间属性表中就没有这些对象。
有时候对一部分对象我们只关心其三维结构或只关心其时间属性,这部分对象的取值不能简单地设为真或假,此时要修改标志变量的值域将之设置为4值域,即V={0, 1, 2, 3},其中0表示既没有三维结构又没有时间属性,1表示有三维结构但没有时间属性,2表示没有三维结构却有时间属性,3表示两者都有。如果整个对象集中存在值为1或2的对象,那么该表就要拆分成两部分以分别存储它们的三维结构与时间属性,当然这些对象的其它信息仍然存储于主表中。
表3 三维结构与时间表
Tab.3 3D data structure and time attribute of all kinds of objects
对象ID
三维结构
时间属性1
时间属性2
时间属性n
…
…
…
…
…
4.1.3 复合对象集对应的表结构
复合对象集是整体GIS数据模型中一个很重要的概念,对于复合对象集,我们可以用两种方式存贮它。1)物理方式,即在物理上将对象的所有信息都集中存放于一个表中。由于不同类型对象的字段不尽相同,因而必然会造成一些字段的空间浪费,例如点对象的长度和面积字段在现实世界中没有实际意义,所占空间自然就是浪费。显然,复合对象集中对象的类型越多,造成的空间浪费就越大。不过,如果复合对象集中包含的对象类型只是简单点与单纯型复杂点,或简单线与单纯型复杂线,或简单面与单纯型复杂面,那么就不会存在字段不一致导致的空间浪费问题。2)逻辑方式,即复合对象集中只存贮对象的系统ID号,而实际的信息仍存在于简单点、线、面对象和单纯型点、线、面复杂对象表---主表中。只是当读取复合对象集中对象的信息时,要打开并访问相应类型的主表,需要耗费一定的系统时间。到底采用何种方式合适,要视具体情况而定。作者的建议是,当复合对象集中对象类型较少时,采用物理方式较为合适。反之,采用逻辑方式则更为合理。作为一个好的GIS系统,应该对这两种存贮方式都进行强有力的支持。
4.1.4 场对应的表结构
面向对象的整体GIS数据模型不仅在概念上将地理对象作为一个个独立的实体看待,而且在内部存储上也是将它们独立存储,各对象表之间并不存在拓扑依赖关系,这一点与基于拓扑关系的数据模型有很大的不同。那么,面向对象的整体GIS数据模型如何处理对象间的拓扑关系呢?我们知道,拓扑模型存贮对象间拓扑关系的一个很重要的目的是为了实现数据共享(同时也降低了访问速度),整体GIS放弃了这一点,它在对象的单个表中为每个对象都存贮了完整的坐标信息。拓扑关系在GIS中并不是最基本的信息,当在特殊情况下需要时我们可以将它们临时构建出来,生成的拓扑关系存放于新的对象集中,形成专门的具有拓扑关系的对象集,这种对象集就是场(这里特指矢量场)。场表的字段设置基本上采用了拓扑关系数据模型的表结构,面与线之间的坐标存储具有依赖关系。
其实,拓扑关系数据模型中预先存储的拓扑关系和整体GIS数据模型中临时构建的拓扑关系都是最基本的点、线、面邻接关系,并未涉及到相交、相离、覆盖等更多的拓扑关系,邻接关系也是拓扑关系中最常用的一种,因此我们只讨论点、线、面间的邻接拓扑关系,其它关系可根据空间查询和分析运算得到。
1)网络场
网络场是包含并强调点、线拓扑关系的最典型代表,网络场对应的对象表有两个:以弧段为主的弧段---结点表(表中含坐标串字段)与以结点为主的结点---弧段表(表中可含结点坐标字段,也可不含)。其中结点---弧段表中可存贮弧段标识号,也可不存(如果不存,可在弧段---结点表中查得结点的弧段),但结点表一定要存在,因为结点有属性要保存。网络场的两个表包含了点与线之间的邻接拓扑关系,我们可以通过它们查得任意结点的邻接弧段和结点,可以查得任意弧段的起止结点。弧段的位置信息一般存于弧段---结点表的空间坐标串字段中,端点的坐标可存于该字段中,也可在结点---弧段表中设一坐标字段存贮。
2)TIN场
TIN场由两类表即可存贮:三角形表和点表。三角形的坐标存于点表的坐标字段中,三角形表本身不存储坐标信息,而只存三角形顶点序号,这些序号的排列有严格的顺序,不能随意颠倒。
3)点-线-面场
有了多边形---弧段、弧段与结点和多边形、结点---弧段三个表,我们就可以得到任意多边形、任意弧段和任意结点的拓扑邻接关系[1]。其中弧段与结点和多边形表是枢纽,为弧段默认设置了空间坐标串字段、从结点、到结点、左多边形和右多边形5个字段。含有这种点、线、面之间拓扑关系的典型场有城市街区图、地籍管理中的宗地等。
其它场如GRID模型、影像数据是栅格数据管理的范围,数据结构相对简单,本文不作讨论。
4.1.5 数据库选择
在数据库类型选择上,有三种模式可供参考:
■ 全文件方式,即空间数据和属性数据都存贮在文件系统中;
■ 文件数据库混合方式,即空间数据存贮在文件系统中,而属性数据存贮在商业数据库中;
■ 全数据库方式,即空间数据与属性数据都存贮在商业数据库中,两种数据可以存放于同一个表也可分别存放于两个表中。
4.2 访问机制
上一小节讨论了地理对象的存贮方式,作为一个大的空间数据库,仅有这些表是不够的。6种基本对象集表只是给我们提供了装载对象的空间,其中的商业数据库表虽然也给我们提供了访问接口(文件系统中表的接口则需要我们自己开发),但究竟如何进行有效的调度访问则还需要进一步设计和组织。
4.2.1 空间索引
我们知道,由于每个表具有相对固定的字段结构,因此一个表只适合存贮类型相同的对象,在整体GIS数据模型里,一个表通常对应一个对象集。一个数据库中往往有多个表,为了管理表的方便,可以用一个统一的表---总表来管理所有对象集对应的表,总表使我们在不必访问数据库各表的情况下就能得到它们的基本信息(如对象集的范围、对象集的索引表等)。一个数据库中只存在一个总表。
在解决了统一管理对象集表的问题后,进一步,为了快速访问各表中的地理对象,我们可以为每个表建立空间索引和属性索引。属性索引可以直接利用关键字在数据库中建立,而空间索引则需要采用一定的算法来实现,常用的方法有R树索引、网格索引和四叉树索引等。为每个对象分配的空间索引编号都存在该对象集的空间索引表中,即一个对象集表对应一个空间索引表。一个数据库中所有对象集表和相应的空间索引表都只对应一个总表。
表4 对象集表对应的空间索引表
Tab.4 Spatial index table of all kinds of object sets
索引块编号 索引块内的对象ID集合
…
….
4.2.2 对象存取
关系数据库以结构简单规范着称,访问存取操作技术也易为人们理解和掌握。当我们把地理对象存入数据库中以后,后面对这些对象的访问、修改也就容易了,在表中加、删记录也相当简单。采用的方法都是将给定的空间、属性条件组织成标准的SQL语句,输入查询算子里面执行即可。当然,对于空间条件的处理,需要自己写算法实现。总体来说,对数据库中对象的访问是以记录集为媒介的,不管是读出对象信息,还是修改、加入、删除记录(写进),都要通过记录集进行,因此必须首先进行查询(SQL查询和空间查询)得到带有所需字段的记录集。对于不支持这种规范化操作的文件型数据库,可以自己开发类似的访问引擎实现对象存取。图3表示了在数据库中进行对象存取的一种机制。
5 系统实现
相对于以前的GIS数据模型而言,整体模型更能真实地逼近客观世界,我们开发的商品化软件---SuperMap 系列软件很好地体现了整体GIS数据模型的思想,能够满足整体GIS的大部分需求,目前已经在国内外市场上得到了广泛应用。
图4展示的是SuperMap系列软件之一的通用桌面GIS系统---SuperMap Deskpro 3.0版本,该系统完全以面向地理实体的方式组织,不仅存贮有地理实体的位置与属性信息,而且能够方便地存取实体之间的拓扑关系和语义关系。在图层的组织方面,不仅符合用户对地理世界的直接感知模式(通过复合对象集实现),而且支持用户根据自己的需要对地理数据进行理性地思考、组织、存贮、管理与显示(简单对象集不仅能满足用户的专题需要,同时也能避免用户误操作对专题数据统一性的破坏)。在数据存贮与管理方面,既支持小数据量的文件型数据库,同时也支持市场上广为流行的大型商用数据库,如SQL Server和Oracle等,空间索引和查询的速度也满足海量数据用户的实际需求。作为桌面GIS系统,SuperMap Deskpro 3.0为用户提供了友好的图形界面,在操作上也为用户批量处理数据提供了很大的方便。SuperMap Deskpro 3.0参加国家科技部和国家遥感中心组织的2001年度国产地理信息系统软件测评后,作为优秀的桌面GIS产品获得了科技部的表彰推荐。
6 结语
用户感知到的地理世界是一个整体,而不是一个个数据层,而且是动态变化和处于三维空间中的。地理世界中的各种实体之间具有拓扑关系和语义关系。为了使做出来的GIS尽可能地符合用户对地理世界的认知,面向对向的整体GIS数据模型及其实现系统需具有如下特点:
1) 强调拓扑关系与语义关系;
2) 强调特定对象的三维结构与时间属性;
3) 重视在复合对象集与复合图层方面增强功能,例如增加任意类型的对象与对象集;
4) 面向对象与拓扑关系数据结构相结合、面向实体与面向场数据模型共存;
5) 客观世界是一个整体,本质上没有GIS的分层概念,但有时在GIS系统中也需要跨层研究对象之间的关系。对于这种跨层拓扑关系我们可以用三种方法揭示:①将各层显示在同一地图窗口中进行观察;②跨图层查询并将结果显示在同一地图窗口中,结果也可保存为地图或复合对象集;③利用整体数据模型中的网络场和点-线-面场有效地模拟跨层之间的拓扑关系。
6) 地理实体之间的语义关系可以通过对象的属性来标识。
E. ArcGIS Engine 地理信息系统开发教程的内容简介
第1章ArcGIS Engine编程基础
1.1 ArcGIS Engine概述亮段
1.1.1 ArcGIS Engine简介
1.1.2 ArcGIS Engine功能
1.1.3 ArcGIS Engine与ArcObjects
1.1.4 ArcGIS Engine类库
1.1.5 ArcGIS Engine控件
1.2 ArcGIS Engine开发资源
1.2.1 帮助文档
1.2.2 自带示例
1.2.3 在线帮助
1.2.4 网上资源
1.3Esri开发方式简介
1.3.1AML语言开发方式
1.3.2Avenue语言开发方式
1.3.3MapObjects开发方式
1.3.4VBA开发方式
1.3.5 ArcObjects开发方式
1.4 对象模型图
1.4.1 对象模型图中的类与接口
1.4.2 查看OMD图
1.5ArcGIS Engine的安装
1.5.1 ArcGIS License Manager的安装
1.5.2 ArcGIS Engine Runtime for Windows的安装
1.5.3 ArcObjects SDK for the Microsoft.NET Framework的安装
1.6 本章小节
第2章 桌面GIS应用软件的开发方式
2.1 使用VBA进行桌面软件开发
2.1.1 VBA开发方镇陆式
2.1.2 VBA代码的安全性
2.2 使用DLL进行桌面软件开发
2.2.1 DLL开发方式
2.2.2 DLL功能的应用部署
2.3 使用Add in进行桌面软件开发
2.3.1 Add in开发方式
2.3.2 Add in的安装部署
2.4 使用ArcGIS Engine构建独立应用程序
2.5 不同开发方式的比较
2.6 本章小结
第3章 地图基本操作
3.1 空间数据与工作空间
3.1.1 空间数据
3.1.2 工作空间
3.2 MapControl控件接口
3.2.1 IMapControlDefault接口
3.2.2 IMapControl2接口
3.2.3 IMapControl3接口
3.2.4 IMapControl4接口
3.2.5 IMapControlEvents2接口
3.3 数据加载
3.3.1 加载地图文档
3.3.2 加载Shapefile数据
3.3.3 加载栅格数据
3.3.4 加载CAD数据
3.3.5 加载个人地理数据库数据
3.3.6 加载文件地理数据库数据
3.3.7 加载ArcSDE空间数据库数据
3.3.8 加载文本文件数据
3.4 地图文档保存
3.4.1 地图文档保存
3.4.2 地图文档另存为
3.5 地图浏览
3.5.1 放大与缩小
3.5.2 拉框放大与缩小
3.5.3 漫游
3.5.4 全图显示
3.5.5 历史视图切换
3.6 书 签
3.6.1 添加书签
3.6.2 书签管理
3.7 ICommand和ITool命令操作地图
3.8 量 测
3.8.1 状态栏坐标显示
3.8.2 距离测量
3.8.3 面积测量
3.9 要素选择操作
3.9.1 要素选择
3.9.2 缩放至选择
3.9.3 清除选择
3.10 地图导出
3.11 视图同步
3.11.1 鹰眼窗口
3.11.2 数据视图与布局视图的同步
3.12 TOCControl控件
3.12.1 TOCControl与数据视图的关联
3.12.2 图层显示顺序调整
3.12.3 TOCControl的右键菜单
3.13 本章小结
第4章 查询统计
4.1 属性查询
4.1.1 相关类与接口
4.1.2 实例详解
4.2 空间查询
4.2.1 相关类与接口
4.2.2 实敬旅誉例详解
4.3 图形查询
4.3.1 相关类与接口
4.3.2 实例详解
4.4 选择集
4.4.1 相关类与接口
4.4.2 实例详解
4.5 查询选项设置
4.5.1 相关类和接口
4.5.2 实例详解
4.6 统计分析
4.6.1 相关的类和接口
4.6.2 实例详解
4.7 本章小结
第5章 地图制图
5.1 颜色模型
5.1.1 颜色模型分类
5.1.2 颜色对象
5.2 地图符号化
5.2.1 点要素符号化
5.2.2 线要素符号化
5.2.3 面要素符号化
5.2.4 文本符号化
5.2.5 符号选择器
5.2.6 样式管理器
5.3 地图标注
5.3.1 TextElement标注
5.3.2 Annotation注记
5.3.3 MapTips显示
5.4 专题地图制图
5.4.1 单一符号化
5.4.2 唯一值符号化
5.4.3 唯一值多字段符号化
5.4.4 分级色彩符号化
5.4.5 分级符号化
5.4.6 比例符号化
5.4.7 点密度符号化
5.4.8 统计图表符号化
5.4.9 双值符号化
5.4.10 多比例尺符号化
5.5 地图整饰
5.5.1 添加图例
5.5.2 添加指北针
5.5.3 添加比例尺
5.5.4 添加地图格网
5.6 制图模板
5.7 空间参考
5.7.1 创建空间参考
5.7.2 同一基准面的坐标转换
5.7.3 不同基准面的坐标转换
5.8 打印输出
5.8.1 打印设置
5.8.2 打印预览
5.8.3 打印
5.8.4 地图输出
5.9 本章小结
第6章 空间数据编辑
6.1 简 介
6.1.1 操作步骤
6.1.2 实现思路
6.1.3 代码说明
6.2 编辑对象
6.2.1 几何对象
6.2.2 DisplayFeedback对象
6.3 开始编辑
6.3.1 IEngineEditor接口介绍
6.3.2 功能实现
6.4 设置编辑图层
6.4.1 IEngineEditLayers接口介绍
6.4.2 功能实现
6.5 设置编辑任务
6.5.1 IEngineEditTask接口介绍
6.5.2 功能实现
6.6 编辑操作
6.6.1 选择要素
6.6.2 移动要素
6.6.3 添加要素
6.6.4 删除要素
6.6.5 撤销操作
6.6.6 恢复操作
6.7 节点编辑
6.7.1 移动节点
6.7.2 添加节点
6.7.3 删除节点
6.8 属性编辑
6.9 保存编辑
6.10 结束编辑
6.11 本章小结
第7章 矢量数据空间分析
7.1 空间拓扑分析
7.1.1 相关类与接口
7.1.2 实例详解——缓冲区分析
7.1.3 实例详解——获取多边形要素边界
7.2 空间关系运算
7.2.1 相关类与接口
7.2.2 实例详解——查找一多边形要素的所有邻接要素
7.3 叠加分析
7.3.1 相关类与接口
7.3.2 实例详解——两相交面图层的裁剪分析
7.4 数据格式转换
7.4.1 相关类与接口
7.4.2 实例详解——将Shapefile数据导入File Geodatabase中
7.4.3 实例详解——通过数据解析方式实现Shapefile数据转CAD
格式数据
7.5 添加X、Y数据
7.5.1 相关类与接口
7.5.2 实例详解——将带有X、Y字段的Excel数据表转化为点数据
7.6 使用GP工具进行空间分析
7.6.1 相关类与接口
7.6.2 实例详解——利用GP工具实现缓冲区分析
7.6.3 实例详解——利用GP工具实现Shapefile数据转CAD数据
7.7 本章小结
第8章 栅格数据空间分析
8.1 环境设置
8.2 空间插值
8.2.1 反距离权重法
8.2.2 克里金法
8.2.3 样条函数法
8.2.4 趋势面法
8.2.5 自然邻域法
8.3 栅格表面分析
8.3.1 坡度计算
8.3.2 坡向计算
8.3.3 等值线计算
8.3.4 填挖方计算
8.3.5 山体阴影
8.3.6 曲率计算
8.3.7 可见性分析
8.4 栅格计算
8.4.1 IMathOp接口
8.4.2 ITrigOp接口
8.4.3 ILogicalOp接口
8.4.4 IBitwiseOp接口
8.5 栅格统计
8.6 密度分析
8.6.1 核密度分析
8.6.2 线密度分析
8.6.3 点密度分析
8.7 提取分析
8.7.1 按属性提取
8.7.2 按掩模提取
8.7.3 按形状提取
8.8 距离分析
8.8.1 欧氏距离
8.8.2 成本距离
8.8.3 成本路径
8.8.4 廊道分析
8.9 重分类
8.9.1 使用表重分类
8.9.2 使用ASCII文件重分类
8.9.3 分割
8.10 条件分析
第9章 管网网络分析
9.1 几何网络
9.1.1 几何网络元素
9.1.2 逻辑网络
9.1.3 几何网络属性
9.2 显示网络流向
9.2.1 相关类与接口
9.2.2 实例详解
9.3 网络追踪分析
9.3.1 相关类与接口
9.3.2 实例详解
9.4 爆管分析
9.4.1 实例详解
9.5 本章小结
第10章 交通网络分析
10.1网络数据集
10.1.1网络元素
10.1.2网络连通性
10.1.3网络属性
10.2最短路径分析
10.2.1相关类与接口
10.2.2实例详解
10.3查找服务区分析
10.3.1相关类与接口
10.3.2实例详解
10.4 设施点分析
10.4.1相关类和接口
10.4.2实例详解
10.5OD成本矩阵分析
10.5.1相关类和接口
10.5.2实例详解
10.6多路径配送分析
10.6.1相关类和接口
10.6.2实例详解
10.7位置分配分析
10.7.1相关类和接口
10.7.2实例详解
10.8本章小结,
11 三维分析
11.1 三维数据模型
11.1.1 3D要素数据
11.1.2 表面数据
11.2 Multipatch
11.2.1 Multipatch创建
11.2.2 Multipatch编辑
11.2.3 Multipatch分析
11.3 实例:基于Multipatch的地质钻孔三维可视化
11.4 TIN数据
11.4.1 加载TIN数据
11.4.2 TIN数据创建
11.4.3 TIN表面分析
11.5 实例:基于多层TIN的地层三维可视化
11.6 SceneControl三维可视化
11.6.1 三维数据加载
11.6.2 三维地图浏览
11.6.3 三维地图识别
11.6.4 遥感影像图与三维地形叠加
11.6.5 矢量图层与地形叠加
11.6.6 三维动画
11.7 GlobeControl三维可视化
11.7.1 三维数据加载
11.7.2 三维地图工具
11.7.3 三维效果
11.8 实例:基于GlobeControl的三维数字校园
12 Esri杯中国大学生GIS软件开发大赛一等奖获奖作品分析
——崂山森林火灾扩散模拟分析与决策系统
12.1 系统功能介绍
12.1.1 系统开发与运行环境
12.1.2 系统总体功能设计
12.1.3 系统登录
12.1.4 基本功能模块
12.1.5 数据管理模块
12.1.6 预报分析模块
12.1.7 火场模拟模块
12.1.8 辅助决策模块
12.1.9 损失评估模块
12.2 数据准备
12.3 代码阅读指南
12.3.1 DevExpress界面库
12.3.2代码组织与说明
12.4 加上如何配置运行程序