Transcript Document

地理信息系统导论
第七章 空间数据管理
1.空间数据库
地理信息系统的内容及其功能与一般管理
信息系统的区别,是数据具有空间分布的性质。
对地理信息系统来讲,不仅数据本身具有空间
属性,系统的分析和应用也无不与地理环境直
接关联。系统的这一基本特征,深刻地影响着
数据的结构、数据库的设计、分析算法和软件,
以及系统的输入和输出。
1.空间数据库
• 1.1地理信息系统与一般信息系统的比较
• 1.1.1 两者的区别
• 1)在硬件上,为了处理图形和图像数据,
系统需要配置专门的输入和输出设备,如
数字化仪、绘图机、图形图像的显示设备
等。
• 2)在软件上,则要求研制专门的图形和
图像数据的分析算法和处理软件,这些算
法和软件又直接和数据的结构及数据库的
管理方法有关。
1.空间数据库
• 3)在信息处理的内容和采用目的方面,一般
的管理信息系统,主要是查询检索和统计分析,
处理的结果,大多是制成某种规定格式的表格
数据,而地理信息系统,除了基本的信息检索
和统计分析外,主要用于分析研究资源的合理
开发利用,制定区域发展规划,地区的综合治
理方案,对环境进行动态的监视和预测预报,
为国民经济建设中的决策提供科学依据,为生
产实践提供信息和指导。
1.空间数据库
• 1.1.2 两者共同之处
• 两者都是以计算机为核心的信息处理系统,都具
有数据量大和数据之间关系复杂的特点,也都随
着数据库技术的发展在不断的改进和完善。
1.空间数据库
• 1.2 空间数据库
• 1.2.1 数据库的概念
• 数据库就是为一定目的服务,以特定的数据存储
的相关联的数据集合,它是数据管理的高级阶段,
是从文件管理系统发展而来的。为了直观地理解
数据库,可以把数据库作如下比较:
表7-1:数据库与图书馆比较
1.空间数据库
•
•
•
•
1.2.2 空间数据库特点
1)数据量特别大
2)不仅有属性数据,还有大量的空间数据
3)数据应用广泛
1.空间数据库
• 1.2.3 数据库管理系统
• 数据库管理系统是在文件处理系统的基础上进
一步发展的系统。DBMS在用户应用程序和数据
文件之间起到了桥梁作用。DBMS的最大优点是
提供了两者之间的数据独立性,即应用程序访
问数据文件时,不必知道数据文件的物理存储
结构。当数据文件的存储结构改变时,不必改
变应用程序。
1.空间数据库
• 2)GIS数据管理方法主要4种类型
• (2.1)对不同的应用模型开发独立的数据
管理服务,这是一种基于文件管理的处理方
法。
• (2.2)在商业化的DBMS基础上开发附加
系统。开发一个附加软件用于存储和管理空
间数据和空间分析,使用DBMS管理属性数
据。
1.空间数据库
• (2.3)使用现有的DBMS,通常是以DBMS为
核心,对系统的功能进行必要扩充,空间数
据和属性数据在同一个DBMS管理之下。需要
增加足够数量的软件和功能来提供空间功能
和图形显示功能。
• (2.4)重新设计一个具有空间数据和属性
数据管理和分析功能的数据库系统。
1.空间数据库
• 1.3数据与文件组织
• 数据是现实世界中信息的载体,是信息的
具体表达形式,为了表达有意义的信息内
容,数据必须按照一定的方式进行组织和
存储。
• 1.3.1数据组织的分级
• 数据库中的数据组织一般可以分为四级:
数据项、记录、文件和数据库。
1.空间数据库
• 1.3.2数据间的逻辑联系
• 数据间的逻辑联系主要是指记录与记录之间
的联系。记录是表示现实世界中的实体的。
实体之间存在着一种或多种联系,这样的联
系必然要反映到记录之间的联系上来。数据
之间的逻辑联系主要有三种:一对一的联系;
一对多的联系;多对多的联系。
1.空间数据库
• 1.3.3常用数据文件
• 图7-1:非顺序文件
• 操作系统实现的文件组织方式,可以分为顺序文件、索引文
件、直接文件和倒排文件。
1.空间数据库
• 1)顺序文件
• 顺序文件(图7-2)是最简单的文件组织形式,对记
录按照主关键字的顺序进行组织。
图7-2:顺序文件
1.空间数据库
• 2)索引文件
• 索引文件除了存储记录本身(主文件)以外,
还建立了若干索引表,这种带有索引表的文
件叫索引文件。索引表中列出记录关键字和
记录在文件中的位置(地址)。读取记录时,
只要提供记录的关键字值,系统通过查找索
引表获得记录的位置,然后取出该记录。
1.空间数据库
• 3)直接文件
• 直接文件又称随机文件,其存储是根据记录关键
字的值,通过某种转换方法得到一个物理存储位
置,然后把记录存储在该位置上。查找时,通过
同样的转换方法,可以直接得到所需要的记录。
• 4)倒排文件
• 倒排文件是带有辅索引的文件,其中辅索引是按
照一些辅关键字来组织索引的(注意:索引文件
是按照记录的主关键字来构造索引的,也叫主索
引)。倒排文件是一种多关键字的索引文件,其
中的索引不能唯一标识记录,往往同一索引指向
若干记录。
1.空间数据库
• 1.4 GIS的内部数据结构
• 内部数据结构基本上可分为两大类:矢量结
构和栅格结构(也可以称为矢量模型和栅格
模型)(图7-3)。两类结构都可用来描述
地理实体的点、线、面三种基本类型。
1.空间数据库
• 在地理信息系统的空间数据结构中,栅格
结构的编码方式主要有直接栅格编码、链
码、游程长度编码、块码、四叉树码等;
矢量结构主要有坐标序列编码、树状索引
编码和二元拓扑编码等编码方法。
1.空间数据库
图7-3:矢量结构和栅格结构
1.空间数据库
• 1.4.1矢量模型
• 在矢量模型中,现实世界的要素位置和范
围可以采用点、线或面表达,与它们在地
图上表示相似,每一个实体的位置是用它
们在坐标参考系统中的空间位置(坐标)
定义。点、线和多边形用于表达不规则的
地理实体在现实世界的状态。
• 矢量模型中的空间实体与要表达的现实世
界中的空间实体具有一定的对应关系。
1.空间数据库
• 1.4.2栅格模型
• 在栅格模型中,地理实体的位置和状态是用它
们占据的栅格的行、列来定义的。每个栅格的
大小代表了定义的空间分辨率。由于位置是由
栅格行列号定义的,所以特定的位置由距它最
近的栅格记录决定。栅格的值表达了这个位置
上物体的类型或状态。采用栅格方法,空间被
划分成大量规则格网,而且每个栅格取值可能
不一样。空间单元是栅格,每一个栅格对应于
一个特定的空间位置,如地表的一个区域,栅
格的值表达了这个位置的状态。
2.栅格数据结构及其编码
•
•
•
•
2.栅格数据结构及其编码
2.1栅格数据结构
2.1.1定义
栅格结构是最简单最直接的空间数据结构,是
指将地球表面划分为大小均匀紧密相邻的网格
阵列,每个网格作为一个象元或象素由行、列
定义,并包含一个代码表示该象素的属性类型
或量值,或仅仅包括指向其属性记录的指针。
因此,栅格结构是以规则的阵列来表示空间地
物或现象分布的数据组织,组织中的每个数据
表示地物或现象的非几何属性特征。
2.栅格数据结构及其编码
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
(a)点
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
6
0
0
0
0
0
0
0
6
0
0
0
0
0
0
6
0
0
0
0
0
0
0
0
6
0
0
0
0
0
(b)线
0
0
0
6
6
6
0
0
0
0
0
0
0
0
6
0
0
0
0
0
0
0
0
0
0
4
4
0
0
0
0
0
4
4
4
0
0
0
0
0
4
4
4
4
8
0
0
0
7
4
4
8
8
8
0
0
7
4
8
8
8
8
8
0
(c)面
图7-4:点、线、区域的格网
7
7
8
8
8
8
8
8
7
7
7
7
7
8
8
8
7
7
7
7
8
8
8
8
2.栅格数据结构及其编码
• 2.1.2 特点
• 栅格结构的显著特点是:属性明显,定位隐
含,即数据直接记录属性的指针或属性本身,
而所在位置则根据行列号转换为相应的坐标,
也就是说定位是根据数据在数据集中的位置
得到的。这种结构容易实现,算法简单,且
易于扩充、修改,也很直观,特别是易于同
遥感影像的结合处理,给地理空间数据处理
带来了极大的方便。
2.栅格数据结构及其编码
• 2.2决定栅格单元代码的方式
• 在决定栅格代码时尽量保持地表的真实性,保证最
大的信息容量。图7-5所示的一块矩形地表区域,内
部含有A、B、C三种地物类型,O点为中心点,将这
个矩形区域近似地表示为栅格结构中的一个栅格单
元时,可根据需要,采取如下的方式之一来决定栅
格单元的代码。
•
图7-5:栅格单元代码的确定
2.栅格数据结构及其编码
• 2.2.1中心点法
• 用处于栅格中心处的地物类型或现象特性决定
栅格代码,在图7-5所示的矩形区域中,中心
点O落在代码为C的地物范围内,按中心点法
的规则,该矩形区域相应的栅格单元代码为C,
中心点法常用于具有连续分布特性的地理要素,
如降雨量分布、人口密度图等。
2.栅格数据结构及其编码
• 2.2.2面积占优法
• 以占矩形区域面积最大的地物类型或现象特性
决定栅格单元的代码,在图7-5所示的例子中,
显见B类地物所占面积最大,故相应栅格代码
定为B。面积占优法常用于分类较细,地物类
别斑块较小的情况。
2.栅格数据结构及其编码
• 2.2.3重要性法
• 根据栅格内不同地物的重要性,选取最重要
的地物类型决定相应的栅格单元代码,假设
图7-5中A类最重要的地物类型,即A比B和C
类更为重要,则栅格单元的代码应为A。重
要性法常用于具有特殊意义而面积较小的地
理要素,特别是点、线状地理要素,如城镇、
交通枢纽、交通线、河流水系等,在栅格中
代码应尽量表示这些重要地物。
2.栅格数据结构及其编码
• 2.2.4百分比法
• 根据矩形区域内各地理要素所占面积的百分
比数确定栅格单元的代码,如可记面积最大
的两类BA,也可以根据B类和A类所占面积
百分比数在代码中加入数字。
2.栅格数据结构及其编码
• 2.3 编码方法
• 2.3.1 直接栅格编码
• 直接编码就是将栅格数据看作一个数据矩
阵,逐行(或逐列)逐个记录代码,可以
每行都从左到右逐个象元记录,也可以奇
数行地从左到右而偶数行地从右向左记录,
为了特定目的还可采用其他特殊的顺序
(图7-6)。
2.栅格数据结构及其编码
图7-6:一些常用的栅格排列顺序
2.栅格数据结构及其编码
• 2.3.2 压缩编码方法
• 目前有一系列栅格数据压缩编码方法,如键
码、游程长度编码、块码和四叉树编码等。
其目的,就是用尽可能少的数据量记录尽可
能多的信息,其类型又有信息无损编码和信
息有损编码之分。
2.栅格数据结构及其编码
• 1)链码(Chain Codes)
• 链码又称为弗里曼链码[Freeman]或边界链
码,优点,链码可以有效地压缩栅格数据,
而且对于估算面积、长度、转折方向的凹凸
度等运算十分方便,比较适合于存储图形数
据。缺点是对边界进行合并和插入等修改编
辑工作比较困难,对局部的修改将改变整体
结构,效率较低,而且由于链码以每个区域
为单位存储边界,相邻区域的边界将被重复
存储而产生冗余。
2.栅格数据结构及其编码
• 2)游程长度编码
• 游程长度编码是栅格数据压缩的重要编码方
法,它的基本思路是:对于一幅栅格图像,
常常有行(或列)方向上相邻的若干点具有
相同的属性代码,因而可采取某种方法压缩
那些重复的记录内容。
2.栅格数据结构及其编码
• 3)块码
• 块码是游程长度编码扩展到二维的情况,采
用方形区域作为记录单元,每个记录单元包
括相邻的若干栅格,数据结构由初始位置
(行、列号)和半径,再加上记录单位的代
码组成。
2.栅格数据结构及其编码
• 4)四叉树
• 四叉树又称四元树或四分树,是最有效的栅格数据压
缩编码方法之一,绝大部分图形操作和运算都可以直
接在四叉树结构上实现,因此四叉树编码既压缩了数
据量,又可大大提高图形操作的效率。四叉树将整个
图像区逐步分解为一系列被单一类型区域内含的方形
区域,最小的方形区域为一个栅格象元,分割的原则
是,将图像区域划分为四个大小相同的象限,而每个
象限又可根据一定规则判断是否继续等分为次一层的
四个象限,其终止判据是,不管是哪一层上的象限,
只要划分到仅代表一种地物或符合既定要求的少数几
种地物时,则不再继续划分,否则一直划分到单个栅
格象元为止。
2.栅格数据结构及其编码
0
4
4
7
7
7
7
7
0
4
4
7
7
7
7
7
4
4
4
4
4
7
7
7
4
4
4
4
4
7
7
7
4
4
4
4
8
8
7
7
4
4
4
4
8
8
7
7
0
0
4
8
8
8
7
7
0
0
4
8
8
8
7
7
0
0
8
8
8
8
7
8
0
0
8
8
8
8
7
8
0
0
0
8
8
8
8
8
0
0
0
8
8
8
8
8
0
0
0
0
8
8
8
8
0
0
0
0
8
8
8
8
0
0
0
0
0
8
8
8
0
0
0
0
0
8
8
8
(a)块码分割
(b)四叉树分割
2.栅格数据结构及其编码
(c)b的四叉树编码
图7-7:四叉树编码
2.栅格数据结构及其编码
• 四叉树编码具有可变的分辨率,并且有区域
性质,压缩数据灵活,许多运算可以在编码
数据上直接实现,大大地提高了运算效率,
是优秀的栅格压缩编码之一。
3.矢量数据结构及其编码
• 3.1矢量数据结构
• 3.1.1定义
• 矢量结构,即通过记录坐标的方式尽可能精
确地表示点、线、多边形等地理实体,坐标
空间设为连续,允许任意位置、长度和面积
的精确定义。
3.矢量数据结构及其编码
• 3.1.2 特点
• 矢量结构的特点是:定位明显、属性隐含,
其定位是根据坐标直接存储的,而属性则
一般存于文件头或数据结构中某些特定的
位置上。
3.矢量数据结构及其编码
• 这种特点使得其图形运算的算法总体上比栅
格数据结构复杂的多,有些甚至难以实现,
当然有些地方也有所便利和独到之处,在计
算长度、面积、形状和图形编辑、几何变换
操作中,矢量结构有很高的效率和精度,而
在叠加运算、邻域搜索等操作时则比较困难。
3.矢量数据结构及其编码
• 3.2 编码方法
• 3.2.1 点实体
• 3.2.2 线实体
图7-8:(a)点实体的编码,(b)线实体的编码
3.矢量数据结构及其编码
• 3.2.3 多边形
• 1)坐标序列法(Spaghetti方式)
• 图7-9:坐标序列法表示的多边形
3.矢量数据结构及其编码
• 坐标序列法文件结构简单,易于实现以多边形为单位的
运算和显示。这种方法的缺点是:
• (1.1)多边形之间的公共边界被数字化和存储两次,
由此产生冗余和碎屑多边形;
• (1.2)每个多边形自成体系而缺少邻域信息,难以
进行邻域处理,如消除某两个多边形之间的共同边界;
• (1.3)岛只作为一个单个的图形建造,没有与外包
多边形的联系;
• (1.4)不易检查拓扑错误。这种方法可用于简单的
粗精度制图系统中。
3.矢量数据结构及其编码
• 2)树状索引编码法
• 该法采用树状索引以减少数据冗余并间接增加邻域信息,方
法是对所有边界点进行数字化,将坐标对以顺序方式存储,
由点索引与边界线号相联系,以线索引与各多边形相联系,
形成树状索引结构。
图7-10:线与多边形之间的树状索引
3.矢量数据结构及其编码
图7-11:点与边界线之间的树状索引
3.矢量数据结构及其编码
• 3)拓扑结构编码法
• 要彻底解决邻域和岛状信息处理问题必须建立
一个完整的拓扑关系结构,这种结构应包括以
下内容:唯一标识,多边形标识,外包多边形
指针,邻接多边形指针,边界链接,范围(最
大和最小x、y坐标值)。采用拓扑结构编码
可以较好地解决空间关系查询等问题,但增加
了算法的复杂性和数据库的大小。
3.矢量数据结构及其编码
• 矢量编码最重要的是信息的完整性和运算的
灵活性,这是由矢量结构自身的特点所决定
的,目前并无统一的最佳的矢量结构编码方
法,在具体工作中应根据数据的特点和任务
的要求而灵活设计。
4.矢栅结构的比较及转换算法
• 4.1栅格结构与矢量结构的比较
• 栅格结构与矢量结构似乎是两种截然不同的空间数据
结构,栅格结构“属性明显、位置隐含”,而矢量结
构“位置明显、属性隐含”,栅格数据操作总的来说
比较容易实现,尤其是作为斑块图件的表示更易于为
人们接受;而矢量数据操作则比较复杂,许多分析操
作(如两张地图的覆盖操作,点或线状地物的邻域搜
索等)用矢量结构实现十分困难,矢量结构表达线状
地物是比较直观的,而面状地物则是通过对边界的描
述而表达。
4.矢栅结构的比较及转换算法
• 无论哪种结构,数据精度和数据量都是一对矛
盾,要提高精度,栅格结构需要更多的栅格单
元,而矢量结构则需记录更多的线段结点。一
般来说,栅格结构只是矢量结构在某种程度上
的一种近似,如果要使栅格结构描述的图件取
得与矢量结构同样的精度,甚至仅仅在量值上
接近,则数据也要比后者大得多。
4.矢栅结构的比较及转换算法
表7-2:矢量格式与栅格格式的比较
4.矢栅结构的比较及转换算法
• 4.2 相互转换算法
• 矢量结构与网格结构的相互转换,是地
理信息系统的基本功能之一,目前已经
发展了许多高效的转换算法;但是,从
栅格数据到矢量数据的转换,特别是扫
描图像的自动识别,仍然是目前研究的
重点。
4.矢栅结构的比较及转换算法
• 点状实体,每个实体仅由一个坐标对表示,
其矢量结构和栅格结构的相互转换基本上只
是坐标精度变换问题,不存在太大的技术问
题。线实体的矢量结构由一系列坐标对表示,
在变为栅格结构时,除把序列中坐标对变为
栅格行列坐标外,还需根据栅格精度要求,
在坐标点之间插满一系列栅格点,这也容易
由两点式直线方程得到。线实体由栅格结构
变为矢量结构与将多边形边界表示为矢量结
构相似,因此以下重点讨论多边形(面实体)
的矢量结构与栅格结构相互转换。
4.矢栅结构的比较及转换算法
• 4.2.1 矢量格式向栅格格式的转换
• 矢量格式向栅格格式转换又称为多边形填充,
就是在矢量表示的多边形边界内部的所有栅
格点上赋以相应的多边形编码,从而形成类
似图7-4的栅格数据阵列。
• 几种主要的算法描述如下:
4.矢栅结构的比较及转换算法
• 1)内部点扩散算法
• 该算法由每个多边形一个内部点(种子点)开始,向
其八个方向的邻点扩散,判断各个新加入点是否在多
边形边界上,如果是边界上,则该新加入点不作为种
子点,否则把非边界点的邻点作为新的种子点与原有
种子点一起进行新的扩散运算,并将该种子点赋以该
多边形的编号。重复上述过程直到所有种子点填满该
多边形并遇到边界停止为止。扩散算法程序设计比较
复杂,并且在一定的栅格精度上,如果复杂图形的同
一多边形的两条边界落在同一个或相邻的两个栅格内,
会造成多边形不连通,这样一个种子点不能完成整个
多边形的填充。
4.矢栅结构的比较及转换算法
• 2)复数积分算法
• 对全部栅格阵列逐个栅格单元地判断该栅格归属的多
边形编码,判别方法是由待判点对每个多边形的封闭
边界计算复数积分,对某个多边形,如果积分值为
2r,则该待判点属于此多边形,赋以多边形编号,
否则在此多边形外部,不属于该多边形。
4.矢栅结构的比较及转换算法
• 3)射线算法和扫描算法
• 射线算法可逐点判断数据栅格点在某多边形之外
或在多边形内,由待判点向图外某点引射线,判
断该射线与某多边形所有边界相交的总次数,如
相交偶数次,则待判点在该多边形外部,如为奇
数次,则待判点在该多边形内部(图7-12)。采
用射线算法,要注意的是:射线与多边形边界相
交时,有一些特殊情况会影响交点的个数,必须
予以排除(图7-13)。
4.矢栅结构的比较及转换算法
• 扫描算法是射线算法的改进,将射线改为沿栅格阵列列
或行方向扫描线,判断与射线算法相似。扫描算法省去
了计算射线与多边形边界交点的大量运算,大大提高了
效率。
图7-12:射线算法
4.矢栅结构的比较及转换算法
图7-13:射线算法的特殊情况
4.矢栅结构的比较及转换算法
• 4)边界代数算法
• 边界代数多边形填充算法是一种基于积分思想的矢量格
式向栅格格式转换算法,它适合于记录拓扑关系的多边
形矢量数据转换为栅格结构。图7-15表示转换单个多
边形的情况,多边形编号为a,模仿积分求多边形区域
面积的过程,初始化的栅格阵列各栅格值为零,以栅格
行列为参考坐标轴,由多边形边界上某点开始顺时针搜
索边界线,当边界上行时(图7-15-a),位于该边界左
侧的具有相同行坐标的所有栅格被减去a;当边界下行
时(图7-15-b),该边界左边(前进方向看为右侧)
所有栅格点加一个值a,边界搜索完毕则完成了多边形
的转换。
4.矢栅结构的比较及转换算法
图7-15:单个多边形的转换
4.矢栅结构的比较及转换算法
图7-16:多个多边形的转换
4.矢栅结构的比较及转换算法
• 边界代数法与前述其他算法的不同之处,在
于它不是逐点判断与边界的关系完成转换,
而是根据边界的拓扑信息,通过简单的加减
代数运算将边界位置信息动态地赋给各栅格
点,实现了矢量格式到栅格格式的高速转换,
而不需要考虑边界与搜索轨迹之间的关系,
因此算法简单、可靠性好,各边界弧段只被
搜索一次,避免了重复计算。
4.矢栅结构的比较及转换算法
• 4.2.2 栅格格式向矢量格式的转换
• 多边形栅格格式向矢量格式转换就是提取
以相同的编号的栅格集合表示的多边形区
域的边界和边界的拓扑关系,并表示由多
个小直线段组成的矢量格式边界线的过程。
4.矢栅结构的比较及转换算法
•
•
•
•
•
•
1)转换步骤
栅格格式向矢量格式转换包括以下四个步骤:
(1.1)多边形边界提取
(1.2)边界线追踪
(1.3)拓扑关系生成
(1.4)去除多余点及曲线圆滑
4.矢栅结构的比较及转换算法
• 2)多边形栅格转矢量的双边界搜索算法
• 算法的基本思想是通过边界提取,将左右多边
形信息保存在边界点上,每条边界弧段由两个
并行的边界链组成,分别记录该边界弧段的左
右多边形编号。边界线搜索采用2*2栅格窗口,
在每个窗口内的四个栅格数据的模式,可以唯
一地确定下一个窗口的搜索方向和该弧段的拓
扑关系,极大地加快了搜索速度,拓扑关系也
很容易建立。
4.矢栅结构的比较及转换算法
•
•
•
•
具体步骤如下:
(2.1)边界点和结点提取
(2.2)边界线搜索与左右多边形信息记录
(2.3)多余点去除
5.空间索引机制
• 5.1 索引概念
• 空间索引就是指依据空间对象的位置和形状
或空间对象之间的某种空间关系按一定的顺
序排列的一种数据结构,其中包含空间对象
的概要信息,如对象的标识、外接矩形及指
向空间对象实体的指针。
5.空间索引机制
• 5.2索引类型
• 5.2.1 格网型空间索引
• 格网型空间索引思路比较简单了,容易理解和
实现。其基本思想是将研究区域用横竖线条划
分大小相等和不等的格网,记录每一个格网所
包含的空间实体。当用户进行空间查询时,首
先计算出用户查询对象所在格网,然后再在该
网格中快速查询所选空间实体,这样一来就大
大地加速了空间索引的查询速度。
5.空间索引机制
• 5.2.2 BSP树空间索引
• BSP树是一种二叉树,它将空间逐级进行一分
为二的划分(图7-19)。BSP树能很好地与空
间数据库中空间对象的分布情况相适应,但对
一般情况而言,BSP树深度较大,对各种操作
均有不利影响。
5.空间索引机制
图7-19:BSP树
5.空间索引机制
• 5.2.3 KDB树空间索引
• KDB树是B树向多维空间的一种发展。它对
于多维空间中的点进行索引具有较好的动态
特性,删除和增加空间点对象也可以很方便
地实现;其缺点是不直接支持占据一定空间
范围的地物要素,如二维空间中的线和面。
5.空间索引机制
• 5.2.4 R树和R+树
• R树根据地物的最小外包矩形建立(图720),可以直接对空间中占据一定范围的空
间对象进行索引。R树的每一个结点N都对应
着磁盘页D(N)和区域I(N),如果结点
不是叶结点,则该结点的所有子结点的区域
都在区域I(N)的范围之内,而且存储在磁
盘页D(N)中;如果结点是叶结点,那么磁
盘页D(N)中存储的将是区域I(N)范围
内的一系列子区域,子区域紧紧围绕空间对
象,一般为空间对象的外接矩形。
5.空间索引机制
图7-20:R树
5.空间索引机制
图7-21:R+树
5.空间索引机制
• 5.2.5 CELL树
• 考虑到R树和R+在插入、删除和空间搜索效率两方面
难于兼顾,CELL树应运而生。它在空间划分时不再
采用矩形作为划分的基本单位,而是采用凸多边形
来作为划分的基本单位,具体划分方法与BSP树有类
似之处,子空间不再相互覆盖。
图7-22:CELL树
6.空间信息查询
• 目前大多数成熟的商品化地理信息系统软件
的查询功能都可完美地实现对空间实体的简
单查找。该查询工作可分为两步:首先借助
于空间索引,在空间数据库中快速检索出被
选空间实体;然后,根据空间数据和属性数
据的连接即可得到该空间实体的属性列表。
6.空间信息查询
• 6.1基于属性特征查询
• 一般来说,基于属性信息的查询操作主要是在
属性数据库中完成的。目前大多数的地理信息
系统软件都将属性信息存储在关系数据库中,
而发展成熟的关系数据库又为我们提供了完备
的数据索引方法及信息查询手段。利用SQL,
我们可以在属性数据库中很方便地实现属性信
息的复合条件查询,筛选出满足条件的空间实
体的标识值,再到空间数据库中根据标识值检
索到该空间实体。
6.空间信息查询
• 6.2基于空间关系和属性特征的查询空间
实体间有着许多空间关系(包括拓扑、顺序、
度量等关系)。在实际应用过程中,用户往往
希望地理信息系统提供一些更能直接计算空间
实体关系的功能。就目前成熟的地理信息系统
而言,比较系统地完成上述查询任务还较为困
难。为此,众多的地理信息系统专家提出了
“空间查询语言”(Spatial Query Language)
以作为解决问题的方案,但仍处于理论发展和
技术探索阶段。
6.空间信息查询
• 6.3一种空间扩展SQL查询语言——GeoSQL
• 查询、检索是地理信息系统中使用最频繁的功
能之一,GIS用户提出的大部分问题都可以表
达为查询形式,即空间查询语言不仅可以使
GIS用户方便地访问、查询和处理空间数据,
也可以实现空间数据的安全性和完整性控制。
相对于一般SQL,空间扩展SQL 主要增加了空
间数据类型和空间操作算子,以满足空间特征
的查询。
6.空间信息查询
• GeoSQL的实现过程如图7-23所示。
用户界面
空间数据库
调用
GeoSQL 文本
解译程序
空间 ODBC
查询结果(图、表)