空间数据库的第四章讲稿ppt课件_第1页
空间数据库的第四章讲稿ppt课件_第2页
空间数据库的第四章讲稿ppt课件_第3页
空间数据库的第四章讲稿ppt课件_第4页
空间数据库的第四章讲稿ppt课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象空间数据模型面向对象空间数据模型 Back一、面向对象的概念与模型一、面向对象的概念与模型二、面向对象的空间要素模型二、面向对象的空间要素模型三、面向对象的三、面向对象的 几何对象模型几何对象模型四、空间数据库的纯关系实现四、空间数据库的纯关系实现 五、空间数据库的对象关系实现五、空间数据库的对象关系实现 面向对象的概念核心概念)面向对象的概念核心概念)一、核心概念一、核心概念(一对象(一对象(Object) 现实世界中的各类现象抽象表示成具有不同特征的对象。对象是具现实世界中的各类现象抽象表示成具有不同特征的对象。对象是具有状态和行为特征的实体,对象之间相互区分、相互联系。对象的标识

2、、有状态和行为特征的实体,对象之间相互区分、相互联系。对象的标识、属性和方法是它的三个关键成分。属性和方法是它的三个关键成分。 1、对象标识:为每个对象在全系统范围内定义唯一标识、对象标识:为每个对象在全系统范围内定义唯一标识OID-Object Identifier) ,在其生命周期中保持不变,是确定对象存取的唯一,在其生命周期中保持不变,是确定对象存取的唯一方法。方法。 2、对象属性:对象的状态通过属性变量定义,由属性值描述。属性、对象属性:对象的状态通过属性变量定义,由属性值描述。属性变量定义属性的型,包括属性名称、数据类型、取值范围和语义完整性变量定义属性的型,包括属性名称、数据类型、

3、取值范围和语义完整性约束。每个对象具有一到多个属性,所有属性值共同描述其状态。约束。每个对象具有一到多个属性,所有属性值共同描述其状态。 3、对象方法:表示对象状态的属性值由一组函数来操作和维护,这、对象方法:表示对象状态的属性值由一组函数来操作和维护,这些函数称为方法。属性的型是事先定义的,属性值由方法来获取和改变。些函数称为方法。属性的型是事先定义的,属性值由方法来获取和改变。 面向对象的概念核心概念)面向对象的概念核心概念)(二音讯(二音讯(Message) 对象的属性只能通过对象自己的方法来获取和改变。消息是对对象的属性只能通过对象自己的方法来获取和改变。消息是对象间交互的手段,一个对

4、象要获取或改变另外一个对象的属性,象间交互的手段,一个对象要获取或改变另外一个对象的属性,只能通过消息引用被访问对象提供给外界的方法来实现。只能通过消息引用被访问对象提供给外界的方法来实现。(三协议(三协议(Protocol) 协议是一个对象所能接受的所有消息构成的集合,是对象的对协议是一个对象所能接受的所有消息构成的集合,是对象的对外接口,是被访问对象提供给其他对象使用的所有方法的集合。外接口,是被访问对象提供给其他对象使用的所有方法的集合。 (四封装(四封装EncapsuIation和消息传递和消息传递 对象、消息和协议打包在一起叫封装。将属性和方法封装在对对象、消息和协议打包在一起叫封装

5、。将属性和方法封装在对象中,向对象发送消息,通过对象所指定的公共接口来存取、维象中,向对象发送消息,通过对象所指定的公共接口来存取、维护属性,这是访问对象属性的唯一方法。封装的意义在于对象的护属性,这是访问对象属性的唯一方法。封装的意义在于对象的访问只能按对象提供给外界的协议接口进行,只能通过协议中提访问只能按对象提供给外界的协议接口进行,只能通过协议中提供的方法向对象发送消息。供的方法向对象发送消息。 面向对象的概念核心概念)面向对象的概念核心概念)(五类和实例(五类和实例(CIass、Instance) 类是对具有共同特征的一组对象的抽象,具有相同的属性类型、消息接类是对具有共同特征的一组

6、对象的抽象,具有相同的属性类型、消息接口和方法定义的所有对象构成一个类。类中的一个具体对象称为其所属类的口和方法定义的所有对象构成一个类。类中的一个具体对象称为其所属类的一个实例,每个实例具有各自不同的状态属性值)。类有三种主要类型:一个实例,每个实例具有各自不同的状态属性值)。类有三种主要类型: 1、抽象类、抽象类(AbstractClass):不能创建对象,只能作为父类。:不能创建对象,只能作为父类。 2、伴随类、伴随类CoClass):可创建类。可直接创建新对象或实例化。:可创建类。可直接创建新对象或实例化。 3、类、类(Class):可实例化类。不能直接创建新对象,但在其他类的属性:可

7、实例化类。不能直接创建新对象,但在其他类的属性中可创建它的对象,可以被另一个类的对象实例化,可以被其他类引用,是中可创建它的对象,可以被另一个类的对象实例化,可以被其他类引用,是一种元件类或成份类。一种元件类或成份类。 图4-1 类与联系 面向对象的概念核心概念)面向对象的概念核心概念)(六类的描述(六类的描述 类的定义称为类的描述对象的型或模式),包括协议类的定义称为类的描述对象的型或模式),包括协议描述和实现描述两个方面。协议描述定义了该类实例的消息接描述和实现描述两个方面。协议描述定义了该类实例的消息接口协议中所有消息),实现描述包括属性变量的定义及所有口协议中所有消息),实现描述包括属

8、性变量的定义及所有方法的实现方式描述。方法的实现方式描述。(七继承与类等级(七继承与类等级(Inheritance、CIass Hierarchy) 类等级结构表达了超类类等级结构表达了超类(或父类、基类或父类、基类)与子类间的继承关与子类间的继承关系,类等级的继承性使得子类能自动地继承其超类的全部语义系,类等级的继承性使得子类能自动地继承其超类的全部语义特性属性、方法、约束)。多层类的继承具有传递性,下层特性属性、方法、约束)。多层类的继承具有传递性,下层子类可继承其上部各层超类的全部语义特性,即父类的所有属子类可继承其上部各层超类的全部语义特性,即父类的所有属性和方法可以被它的所有子类传递

9、地继承。子类还可以附加新性和方法可以被它的所有子类传递地继承。子类还可以附加新的属性和方法,一个实例是其所有超类的一个逻辑上的实例。的属性和方法,一个实例是其所有超类的一个逻辑上的实例。面向对象的概念核心概念)面向对象的概念核心概念)(八功能重载和多态性(八功能重载和多态性(0verLoading 、PoIymphism) 子类对超类方法的覆盖功能就是重载与多态的体现。子类对超类方法的覆盖功能就是重载与多态的体现。子类定义的新方法与继承父类的旧方法可具有相同的名称、子类定义的新方法与继承父类的旧方法可具有相同的名称、形式参数和返回值,也可以同名但具有不同的形式。系统形式参数和返回值,也可以同名

10、但具有不同的形式。系统调用时根据不同的描述信息,选择合适的方法运行。通常调用时根据不同的描述信息,选择合适的方法运行。通常把同一个类中有多个同名方法的现象称为重载或多态,消把同一个类中有多个同名方法的现象称为重载或多态,消息传递的实现是以重载和多态为支撑。息传递的实现是以重载和多态为支撑。(九类图(九类图 类图是一种框架类图是一种框架(Frame)、模板、模板Template)或模式或模式(Schema),描述同类对象的特征及多个类之间的联系。,描述同类对象的特征及多个类之间的联系。(十实例图(十实例图 实例对象图是类图的具体实现,给定一张类图必实例对象图是类图的具体实现,给定一张类图必对应实

11、例图的一个无限集合。对应实例图的一个无限集合。面向对象的概念核心概念)面向对象的概念核心概念)(十一链接与联系(十一链接与联系(Llnk、Association) 链接与联系是建立对象之间及类之间关系的一种手段。两类之间的直链接与联系是建立对象之间及类之间关系的一种手段。两类之间的直线表示联系,两对象之间的直线表示链接。联系主要有下列三种:线表示联系,两对象之间的直线表示链接。联系主要有下列三种: 1、实例化、实例化Instantiation):一个类中有一个方法可创建另一个类):一个类中有一个方法可创建另一个类的对象。的对象。 2、聚集或聚合、聚集或聚合Aggregation 和和 Comp

12、osition):聚集表示):聚集表示 “部部分与整体的关系,由元件分与整体的关系,由元件(Components)对象构造复杂组合对象构造复杂组合(Assembly)对象。主类控制着成分类的生命周期。对象。主类控制着成分类的生命周期。 3、结合、结合Association):除去类等级关系和类组成关系以外,还有):除去类等级关系和类组成关系以外,还有一些类之间的对应关系称为联合。如:材料与产品的关系,学生与课程的一些类之间的对应关系称为联合。如:材料与产品的关系,学生与课程的关系等。关系等。(十二一般化和特殊化(十二一般化和特殊化(Generalization、Specification) 一

13、般化指从一组相似的对象中找出共性,子类的共性归入父类,产生一般化指从一组相似的对象中找出共性,子类的共性归入父类,产生祖先类与后代类之间的类等级和类结构关系。特殊化是在一般类共性的基祖先类与后代类之间的类等级和类结构关系。特殊化是在一般类共性的基础上扩展特性构成新的具体类,子类可继承父类的性质,可对父类的属性础上扩展特性构成新的具体类,子类可继承父类的性质,可对父类的属性和方法进行更新,也可添加自身特定的属性及方法。和方法进行更新,也可添加自身特定的属性及方法。面向对象的概念扩充概念)面向对象的概念扩充概念)二、扩充概念二、扩充概念复合对象与类复合等级复合对象与类复合等级 如果对象的一个属性的

14、定义域不是基本类如果对象的一个属性的定义域不是基本类(整数、字符串等整数、字符串等),而是另一个非基本类一个类等级结构),对应的属性值为这个而是另一个非基本类一个类等级结构),对应的属性值为这个非基本类的类等级结构中任意一个类的一个实例,属性取值为该非基本类的类等级结构中任意一个类的一个实例,属性取值为该对象的标识符一个对象引用其他对象),这个对象称为复合对对象的标识符一个对象引用其他对象),这个对象称为复合对象。象。 复合对象是构成一个整体与部分等级的非匀质对象集合,它将复合对象是构成一个整体与部分等级的非匀质对象集合,它将“整体与部分的关系补充到一个对象与其引用的其他对象之间整体与部分的关

15、系补充到一个对象与其引用的其他对象之间的聚集关系中。的聚集关系中。 面向对象表达方式中,空间要素的主题属性在一个基本类面向对象表达方式中,空间要素的主题属性在一个基本类(整整数或字符串数或字符串)的范围内取值,而空间属性的定义域则为一个非基本的范围内取值,而空间属性的定义域则为一个非基本类,空间属性取值为非基本类的类等级中某个对象几何对象类,空间属性取值为非基本类的类等级中某个对象几何对象的主关键字或对象标识,称为空间要素对一个几何对象的引用。的主关键字或对象标识,称为空间要素对一个几何对象的引用。 对象的引用建立了一个对象和引用它的另一个对象之间的对象的引用建立了一个对象和引用它的另一个对象

16、之间的“整整体与部分关系,通过属性对其他类的引用构成嵌套关系模型,体与部分关系,通过属性对其他类的引用构成嵌套关系模型,称为类复合等级称为类复合等级(a class composition hierachy)。 Back面向对象数据模型面向对象数据模型一、对象与封装性一、对象与封装性encapsulation) 每个概念实体模型化为一个对象,一个对象由描每个概念实体模型化为一个对象,一个对象由描述该对象状态的一组属性数据和表达其行为的一组方述该对象状态的一组属性数据和表达其行为的一组方法组成,是属性数据和行为的统一体。法组成,是属性数据和行为的统一体。 一个对象一个对象object可定义成一个

17、三元组:可定义成一个三元组:object=(ID,S,M) 其中,其中,ID为对象标识,为对象标识,M为方法集,为方法集,S为对象的属为对象的属性数据集合,它可以是一个属性值,也可以是另外一性数据集合,它可以是一个属性值,也可以是另外一组对象的集合,明显地表现出对象的递归。组对象的集合,明显地表现出对象的递归。 面向对象数据模型面向对象数据模型二、分类二、分类classification) 类是同类对象的集合,类将具有相同属性和方类是同类对象的集合,类将具有相同属性和方法的对象组合在一起。法的对象组合在一起。 属于同一类的所有对象具有相同的属性定义属于同一类的所有对象具有相同的属性定义数据类型

18、和取值范围和方法定义函数体)。数据类型和取值范围和方法定义函数体)。 用一个三元组来描述类:用一个三元组来描述类: class=(CID,CS,CM) 其中,其中,CID为类标识,为类标识,CS为类的状态描述,为类的状态描述,CM为该类的方法。为该类的方法。 显然有:显然有: S CS和和M CM 当当object class 面向对象数据模型面向对象数据模型三、概括三、概括generalization) 将多个类中的公共属性和方法抽象出来形成一种更一般的超类。将多个类中的公共属性和方法抽象出来形成一种更一般的超类。 设有两个类:设有两个类: class1=(CID1,CS1,CM1) =(C

19、ID1,CSA,CSB,CMA,CMB) class2=(CID2,CS2,CM2) =(CID2,CSA,CSC,CMA,CMC) class1和和class2中都带有相同的属性子集中都带有相同的属性子集CSA和方法子集和方法子集CMA。 并且:并且: CSA CS1和和CSA CS2 以及以及CMA CM1和和CMA CM2。 将共同属性和方法提取出来形成一种超类,将共同属性和方法提取出来形成一种超类,SID为超类的标识符。为超类的标识符。Superclass=(SID,CSA,CMA) 定义超类后定义超类后class1和和class2称为称为Superclass的子类,分别表示为:的子类

20、,分别表示为:class1=(CID1,CSB,CMB)class2=(CID2,CSC,CMC) 面向对象数据模型面向对象数据模型 超类与子类之间的继承与抽象关系构成一种类等级结构,空间数超类与子类之间的继承与抽象关系构成一种类等级结构,空间数据库中限定每个子类只能有一个父类,但可以有多个子类。子类可从据库中限定每个子类只能有一个父类,但可以有多个子类。子类可从父类继承属性和方法,也可定义自身特有的属性和方法。父类继承属性和方法,也可定义自身特有的属性和方法。 图图4-2为一个简单的层次模型,表示了路类、公路类、路段类之间为一个简单的层次模型,表示了路类、公路类、路段类之间的类等级关系。公路

21、类是路类的子类,路段类是公路类的子类。公路的类等级关系。公路类是路类的子类,路段类是公路类的子类。公路类继承了路类的属性,并增加了等级、路面、宽度等属性。路段类除类继承了路类的属性,并增加了等级、路面、宽度等属性。路段类除了继承公路类的属性外,又新定义了起点、终点等自己的属性。了继承公路类的属性外,又新定义了起点、终点等自己的属性。 图图4-2 空间类的类等级结构空间类的类等级结构 面向对象数据模型面向对象数据模型四、聚集四、聚集aggregation) 聚集将几个不同特征的对象组合成一个更高水平的复合对象,每个聚集将几个不同特征的对象组合成一个更高水平的复合对象,每个不同特征的对象是该复合对

22、象的一部分,它们有自己的属性数据和方法,不同特征的对象是该复合对象的一部分,它们有自己的属性数据和方法,这些属性数据和方法不能为复合对象所公用,但复合对象可以从中派生这些属性数据和方法不能为复合对象所公用,但复合对象可以从中派生得到一些信息。例如,弧段聚集成线状地物或面状地物,简单地物组成得到一些信息。例如,弧段聚集成线状地物或面状地物,简单地物组成复杂地物。复杂地物。 设有两种不同特征的元件对象:设有两种不同特征的元件对象:object1=(ID1,S1,M1) object2=(ID2,S2,M2) 用它们组成一个新的复合对象:用它们组成一个新的复合对象: object3=(ID3,S3,

23、Object1Su),),Object2SvM3) 其中其中Su S1,Sv S2,从式中可见,复合对象,从式中可见,复合对象object3拥有自拥有自己的属性值和操作,它仅从分子对象中提取部分属性值,且一般不继承己的属性值和操作,它仅从分子对象中提取部分属性值,且一般不继承子对象的方法。子对象的方法。 面向对象数据模型面向对象数据模型 一个空间类非基本类的实例可以作为元件类实例,聚合成另一一个空间类非基本类的实例可以作为元件类实例,聚合成另一个不同类型空间类的实例。聚合与引用关系表达了类与类之间的横向构个不同类型空间类的实例。聚合与引用关系表达了类与类之间的横向构成关系,构成了空间数据库的类

24、复合等级结构。一个复杂的空间对象由成关系,构成了空间数据库的类复合等级结构。一个复杂的空间对象由多个其他的空间对象组成,如交通网络由交叉路口、服务设施、道路等多个其他的空间对象组成,如交通网络由交叉路口、服务设施、道路等组成。图组成。图4-3为复合引用与弱引用举例:为复合引用与弱引用举例: 图图4-3 空间类的类复合等级结构空间类的类复合等级结构 面向对象数据模型面向对象数据模型五、结合五、结合association) 类等级和类复合等级关系是空间类之间的两个最主要关系,除类等级和类复合等级关系是空间类之间的两个最主要关系,除此之外实例间还存在一些其他联系,如共存时间段、联合关系等。此之外实例

25、间还存在一些其他联系,如共存时间段、联合关系等。 在定义对象时,将同一类对象中的几个具有相同属性值的对象在定义对象时,将同一类对象中的几个具有相同属性值的对象组合起来,为了避免重复,设立一个更高水平的对象表示那些相同组合起来,为了避免重复,设立一个更高水平的对象表示那些相同的属性值。的属性值。 假设有两个对象具有一部分相同的属性值:假设有两个对象具有一部分相同的属性值:object1=(ID1,SA,SB,M)object1=(ID2,SA,SC,M) 可设立新对象可设立新对象object包含包含object1和和object2,object3=(ID3,SA,object1,object2,

26、M) 此时,此时,object1和和object2可表示成:可表示成:object1=(ID1,SB,M)object2=(ID2,SC,M) object1和和object2称为称为“成分对象成分对象”,它们的联合所得到的对象,它们的联合所得到的对象为为“组合对象组合对象”。联合的一个特征是它的成分对象应属于同一个类,。联合的一个特征是它的成分对象应属于同一个类,即即object1和和object2是同一个类的对象。是同一个类的对象。 Back面向对象空间数据模型面向对象空间数据模型(应用问题描述)(应用问题描述)一、数据一、数据 应用涉及行政区划、城市间路网和土地使用三类数据。应用涉及行政

27、区划、城市间路网和土地使用三类数据。 抽象为七个专题:抽象为七个专题:(一行政区划(一行政区划 行政区域的层次结构划分为国家、省和县三层。行政区域的层次结构划分为国家、省和县三层。 抽象为三个专题:抽象为三个专题: 1、国家、国家country国家名国家名name,几何属性,几何属性geometry) 2、省、省province省名省名name,几何属性,几何属性geometry) 3、县、县county县名县名name,人口,人口population,几何属,几何属性性geometry)面向对象空间数据模型面向对象空间数据模型(应用问题描述)(应用问题描述)(二城市间的路网(二城市间的路网

28、城市间的路网包含道路、路段、城市。城市间的路网包含道路、路段、城市。 抽象为三个专题:抽象为三个专题: 1、道路、道路highway)(道路名称,道路类型)(道路名称,道路类型) 2、路段、路段section路段名称,车道数,几何属性路段名称,车道数,几何属性geometry) 3、城市、城市city城市名称,人口,几何属性城市名称,人口,几何属性geometry)(三土地使用(三土地使用 土地使用土地使用land use专题中每个要素有一种土地使专题中每个要素有一种土地使用类型,如居住区、森林、农田等。用类型,如居住区、森林、农田等。 面向对象空间数据模型面向对象空间数据模型(实现的功能)(

29、实现的功能)二、实现的功能二、实现的功能(一查询分类(一查询分类 1、属性查询、属性查询alphanumeric criteria):查询条件中):查询条件中只含主题属性。只含主题属性。 2、空间查询、空间查询spatial criteria):查询条件中含有几):查询条件中含有几何对象和空间操作。何对象和空间操作。 3、交互式查询、交互式查询(interactive):人机交互式查询。:人机交互式查询。(二查询命名(二查询命名 查询名称查询名称 = 类型前缀类型前缀 + 模式前缀模式前缀 + 编号。编号。 类型前缀:属性查询类型前缀:属性查询ALPHA-、空间查询、空间查询SPAT-、交互、

30、交互式查询式查询INTER-。 模式前缀:行政区划模式前缀:行政区划ADM 、路网、路网R、土地使用、土地使用LU。 编号:类型前缀和模式前缀相同时查询的编号。编号:类型前缀和模式前缀相同时查询的编号。 例子:例子:ALPHA- ADM2表示在行政区模式上的第二个属表示在行政区模式上的第二个属性查询。性查询。 面向对象空间数据模型面向对象空间数据模型(实现的功能)(实现的功能) (三查询定义(三查询定义 1、属性查询:、属性查询: ALPHA- ADM1:某省某县的居民数量。:某省某县的居民数量。 ALPHA- ADM2:某省有多少个县。:某省有多少个县。 ALPHA- ADM3:中国的居民数

31、量。:中国的居民数量。 ALPHA-R1:某一条道路第一路段的车道数。:某一条道路第一路段的车道数。 ALPHA-R2:某一条道路的所有路段名。:某一条道路的所有路段名。面向对象空间数据模型面向对象空间数据模型(实现的功能)(实现的功能)2、空间查询:、空间查询:SPAT- ADM4:与某省相邻的省。:与某省相邻的省。SPAT- ADM5:显示某个省。:显示某个省。SPAT- ADM6:全国范围内,大于:全国范围内,大于“某省中最大一个县的那些县。某省中最大一个县的那些县。SPAT- R3:某条道路的长度。:某条道路的长度。SPAT- ADM- R1:通过某个省的所有公路。:通过某个省的所有公

32、路。SPAT- ADM-LU1:显示某个县的所有居住面积。:显示某个县的所有居住面积。SPAT- ADM-LU2:行政区域与土地使用专题的覆盖。:行政区域与土地使用专题的覆盖。3、交互式查询:、交互式查询:INTER- ADM7:在屏幕上点击选择一个县。:在屏幕上点击选择一个县。INTER- ADM8:含在所选窗口中的省。:含在所选窗口中的省。INTER- ADM9:用给定窗口裁剪出的县。:用给定窗口裁剪出的县。INTER- R5:在屏幕上点击,选中一条道路的路段。:在屏幕上点击,选中一条道路的路段。INTER- R6:所选路段对应的道路是哪几条。:所选路段对应的道路是哪几条。面向对象空间数据

33、模型面向对象空间数据模型(概念模型)(概念模型) 一个专题对应一个空间要素类,用矩形方框表示。两个类一个专题对应一个空间要素类,用矩形方框表示。两个类之间的连线表示类之间的联系,之间的连线表示类之间的联系,表示聚合关系,表示一对表示聚合关系,表示一对多联系。多联系。 一、行政区划一、行政区划Schema 1) 图图4-4定义国家、省、县三个专题模式及相互间的聚合关系定义国家、省、县三个专题模式及相互间的聚合关系和一对多联系。和一对多联系。 国家国家国家编码国家编码国家名称国家名称几何对象几何对象其他方法其他方法省省省编码省编码省名称省名称几何对象几何对象其他方法其他方法县县县编码县编码县名称县

34、名称县人口县人口几何对象几何对象其他方法其他方法图图4-4 行政区划的类图行政区划的类图 面向对象空间数据模型面向对象空间数据模型(概念模型)(概念模型)二、城市间的路网二、城市间的路网(Schema 2) 图图4-5定义了道路、路段、城市三个专题模式及相互间的聚合关系定义了道路、路段、城市三个专题模式及相互间的聚合关系和一对多联系。和一对多联系。 一条道路由多个路段组成,一个路段属于多条道路,道路与路段一条道路由多个路段组成,一个路段属于多条道路,道路与路段是多对多关系。一条路段连接两个城市,路段有方向,一个城市被多是多对多关系。一条路段连接两个城市,路段有方向,一个城市被多条路段连接,道路

35、和城市也是多对多关系。条路段连接,道路和城市也是多对多关系。 道路道路道路编码道路编码道路名称道路名称道路类型道路类型其他方法其他方法城市城市城市名称城市名称城市人口城市人口几何对象几何对象其他方法其他方法图图4-5 城市间路网的类图城市间路网的类图 起始终止终止路段编码路段编码路段名称路段名称车道数量车道数量几何对象几何对象其他方法其他方法路段路段面向对象空间数据模型面向对象空间数据模型(概念模型)(概念模型)三、土地使用三、土地使用(Schema 3) 土地使用土地使用land use专题模式的定义如专题模式的定义如图图4-6所示。所示。 土地使用土地使用土地使用编码土地使用类型区域名称几

36、何对象其他方法图图4-6土地使用的类图土地使用的类图 面向对象空间数据模型面向对象空间数据模型(扩展(扩展E-R图表达的概念模型)图表达的概念模型)一、扩展一、扩展E-R模型的概念模型的概念 象形图定义一种图形符号,形式为方框内包含一个对象表象形图定义一种图形符号,形式为方框内包含一个对象表示符。将图形符号放在实体矩形框中适当的位置,表示实体的示符。将图形符号放在实体矩形框中适当的位置,表示实体的几何特征。任何两个空间实体间都隐含着空间联系,可定义表几何特征。任何两个空间实体间都隐含着空间联系,可定义表示空间联系的象形符号。示空间联系的象形符号。 n 0,n*!Part of 网络网络Part

37、 of 分区分区图图4-7 扩展扩展E-R图模型中的象形图符号图模型中的象形图符号 面向对象空间数据模型面向对象空间数据模型(扩展(扩展E-R图表达的概念模型)图表达的概念模型)二、空间要素概念模型二、空间要素概念模型(一行政区划(一行政区划Schema 1)图图4-8 行政区划的扩展行政区划的扩展E-R图图 面向对象空间数据模型面向对象空间数据模型(扩展(扩展E-R图表达的概念模型)图表达的概念模型)(二城市间路网(二城市间路网 Back图4-9城市间路网的扩展E-R图 (三土地使用(三土地使用图4-10土地使用的扩展E-R图几何对象模型几何类层次结构)几何对象模型几何类层次结构) 面向对象

38、空间数据模型用一组基本空间数据类型来满足常用几何形状的建模需求,表示几何对象的属性、方法和关系。 图4-11是OpenGIS Simple Features Specification For SQL92和SQL99中定义的几何类层次模型,表示基本空间几何体及其关系。 其中划分了几何类型,定义了每个几何类的属性和方法,描述了几何类等级和几何类复合等级结构。 图图4-11 几何对象层次结构几何对象层次结构 几何对象模型几何类层次结构)几何对象模型几何类层次结构)一、类等级结构一、类等级结构 1、几何体、几何体Geometry是一个不能实例化的抽象类,是一个不能实例化的抽象类,它是所有基本几何体的

39、超类,它定义了所有基本几何它是所有基本几何体的超类,它定义了所有基本几何体的共同属性和方法。体的共同属性和方法。 2、空间参照系统类与几何体、空间参照系统类与几何体Geometry类之间存类之间存在着一对多的关系,即所有的基本几何体必须选择相在着一对多的关系,即所有的基本几何体必须选择相同的空间参照系统。同的空间参照系统。 3、几何体、几何体Geometry有四个子类,分别是点有四个子类,分别是点Point、曲线曲线Curve、面、面Surface和几何体集合和几何体集合Geometry Collection。 4、几何体集合、几何体集合Geometry Collection有点集合有点集合M

40、ultiPoint、曲线集合、曲线集合MultiCurve和面集合和面集合MultiSurface三个子类。三个子类。 几何对象模型几何类层次结构)几何对象模型几何类层次结构) 5、曲线、曲线Curve的子类是用直线连接各点形成的的子类是用直线连接各点形成的线串线串LineString。 6、面、面Surface的子类是多边形的子类是多边形Polygon。 7、曲线集合、曲线集合MultiCurve的子类是线串集合的子类是线串集合LineStrings。 8、面集合、面集合MultiSurface的子类是多边形集合的子类是多边形集合Polygons。 9、线串、线串LineString的子类是

41、线的子类是线Line和线环和线环LinearRing。每个子类都继承了父类的所有语义特征,并可以定每个子类都继承了父类的所有语义特征,并可以定义子类新的属性和方法。义子类新的属性和方法。 几何对象模型几何类层次结构)几何对象模型几何类层次结构)二、类复合等级与联系二、类复合等级与联系 1、一个线串、一个线串LineString对应多个点对应多个点Point,一个点集合,一个点集合MultiPoint也对应多个点也对应多个点Point。 2、一个多边形、一个多边形Polygon对应对应1多个线环多个线环LinearRing。 3、一个线串集合、一个线串集合LineStrings对应多个线串对应多

42、个线串LineString。 4、一个多边形集合、一个多边形集合Polygons对应多个多边形对应多个多边形Polygon。 具体应用中还可以对图具体应用中还可以对图4-11中表示的几何类层次结构进中表示的几何类层次结构进行扩展。如为几何体集合行扩展。如为几何体集合Geometry Collection定义一个子定义一个子类,该子类是由点集合类,该子类是由点集合Points、线串集合、线串集合LineStrings和多和多边形集合边形集合Polygons构成的复杂几何对象。也可以为曲线构成的复杂几何对象。也可以为曲线Curve定义一个子类,即用曲线连接各点形成的弧。定义一个子类,即用曲线连接各

43、点形成的弧。 几何对象模型几何类的定义)几何对象模型几何类的定义) 下面是下面是SQL92和和SQL99标准为图标准为图4-11中的每个几中的每个几何类定义的属性和方法。何类定义的属性和方法。一、几何体一、几何体Geometry 几何体几何体Geometry是几何对象类等级树的树根,是是几何对象类等级树的树根,是所有基本空间几何体的超类,是一个不能实例化的抽象所有基本空间几何体的超类,是一个不能实例化的抽象类。几何体类。几何体Geometry类等级中所有的基本几何对象都类等级中所有的基本几何对象都采用相同的空间参照系统。采用相同的空间参照系统。(一几何体(一几何体Geometry 的属性:的属

44、性: Dimension对象的空间延展度。点对象的空间延展度。点-0维,线维,线-1维,面维,面-2维。维。 CoordinateDimension对象的坐标维,即使用对象的坐标维,即使用坐标系的维数。坐标系的维数。 几何对象模型几何类的定义)几何对象模型几何类的定义)(二几何体(二几何体Geometry 的方法:的方法: 几何对象模型几何类的定义)几何对象模型几何类的定义)几何对象模型几何类的定义)几何对象模型几何类的定义)几何对象模型几何类的定义)几何对象模型几何类的定义)二、几何体集合二、几何体集合Geometry Collection 几何体集合几何体集合Geometry Collec

45、tion是几何体是几何体Geometry的的子类,是一个或多个子类,是一个或多个Geometry构成的集合。构成的集合。 Geometry Collection无新增属性,新增方法为:无新增属性,新增方法为: GeometryIterator Geometries():几何对象的重载。:几何对象的重载。92 Integer NumGeometries( ):返回:返回GeometryCollection中中Geometry的数量。的数量。99 Geometry GeometryN(N:integer): 前往前往 GeometryCollection中第中第N个个Geometry。99 几何对

46、象模型几何类的定义)几何对象模型几何类的定义)三、点三、点Point 点点Point是几何体是几何体Geometry的子类,边界为空,的子类,边界为空,0维几维几何要素,表示空间中的一个位置。何要素,表示空间中的一个位置。 新增属性:新增属性:X点的点的x坐标。坐标。Y点的点的y坐标。坐标。 新增方法:新增方法:Double X( ):返回点的:返回点的x坐标。坐标。99 Double Y( ):返回点的:返回点的y 坐标。坐标。99四、点集合四、点集合MultiPoint 点集合点集合MultiPoint 是几何体集合是几何体集合Geometry Collection的子类,是的子类,是0维

47、几何要素的集合。点集合维几何要素的集合。点集合MultiPoint的元素的元素为多个不相互联结的、无序的点为多个不相互联结的、无序的点Point。如果任何两个点都。如果任何两个点都不相等,则点集合不相等,则点集合 MultiPoint 是简单的。点集合是简单的。点集合MultiPoint 的边界是空集合。点集合的边界是空集合。点集合MultiPoint没有新增没有新增属性和方法。属性和方法。 几何对象模型几何类的定义)几何对象模型几何类的定义)五、曲线五、曲线Curve 曲线曲线Curve是几何体是几何体Geometry的子类,是点的一个序列。曲的子类,是点的一个序列。曲线线Curve 的子类

48、表示两点间内插的形式,它只有一个子类线串的子类表示两点间内插的形式,它只有一个子类线串LineString,表示点之间为线性内插。不相交的曲线,表示点之间为线性内插。不相交的曲线Curve称为简称为简单曲线单曲线Curve,始点与终点相同时称为闭合曲线,一个简单闭合的,始点与终点相同时称为闭合曲线,一个简单闭合的曲线称为一个环曲线称为一个环Ring。不闭合曲线。不闭合曲线Curve的边界为它的两个端点。的边界为它的两个端点。 曲线曲线Curve没有新增属性,新增方法为:没有新增属性,新增方法为: Double Length():返回:返回Curve 在相应参照系统中的长度。在相应参照系统中的长

49、度。 Point StartPoint():返回:返回Curve 的起点。的起点。 Point EndPoint():返回:返回Curve 的终点。的终点。 Integer IsClosed():返回:返回TRUE表示曲线闭合表示曲线闭合(StartPoint ( ) = EndPoint ( )。99 Integer IsRing( ):TRUE表示曲线闭合表示曲线闭合(StartPoint () = EndPoint ()且是简单环。且是简单环。99几何对象模型几何类的定义)几何对象模型几何类的定义)六、线串六、线串LineString 线串线串LineString是曲线是曲线Curve的

50、子类,是一个的子类,是一个Curve,点和,点和点之间采用线性内插,点序列中紧邻的两点定义一个线段。点之间采用线性内插,点序列中紧邻的两点定义一个线段。 线串线串LineString没有新增属性。没有新增属性。 新增方法为:新增方法为: Integer NumPoints( ):返回:返回LineString中的点数。中的点数。99 Point PointN(N:Integer):返回:返回Linestring中第中第N个点。个点。99 七、线七、线Line 线线Line是线串是线串LineString的子类,是只有两个点的线串的子类,是只有两个点的线串 LineString。线。线Line没

51、有新增属性,新增方法同没有新增属性,新增方法同LineString。八、线环八、线环LinearRing 线环线环LinearRing是线串是线串LineString的子类,是一个闭合的、的子类,是一个闭合的、简单的线串简单的线串LineString。线环。线环LinearRing没有新增属性,新增没有新增属性,新增方法同方法同LineString。几何对象模型几何类的定义)几何对象模型几何类的定义)九、曲线集合九、曲线集合MultiCurve 曲线集合曲线集合MultiCurve是几何体集合是几何体集合Geometry Collection的一个子类,是的一个子类,是1维几何体集合,它的元素

52、为维几何体集合,它的元素为多个曲线多个曲线Curves。是一个不能实例化的抽象类。如果其。是一个不能实例化的抽象类。如果其中各元素均为简单元素,且两元素的交集为边界上的点中各元素均为简单元素,且两元素的交集为边界上的点集,则曲线集合集,则曲线集合MultiCurve是简单的。是简单的。 曲线集合曲线集合MultiCurve没有新增属性。没有新增属性。 新增方法为:新增方法为: Double Length():返回曲线集合:返回曲线集合MultiCurve 的元的元素素Curves的长度总和。的长度总和。 Integer IsClosed( ):前往:前往 1 (TRUE)表示曲线集合表示曲线集

53、合MultiCurve中每个曲线是封闭的中每个曲线是封闭的(StartPoint () = EndPoint () 99 几何对象模型几何类的定义)几何对象模型几何类的定义)十、面十、面Surface 面面Surfac是是2维几何对象,由一个外部边界和维几何对象,由一个外部边界和0个或多个内部个或多个内部边界组成。边界组成。3维空间的简单维空间的简单surfaces 与平面与平面surfaces同形。多面同形。多面体表面体表面Polyhedral surfaces由简单由简单surfaces共享边界构成。共享边界构成。 简单简单surface 是与是与surfaces内外边界对应的闭合内外边界

54、对应的闭合Curves的集的集合。它的唯一的可实例化的子集是合。它的唯一的可实例化的子集是Polygon。 面面Surfac没有新增属性,新增方法为:没有新增属性,新增方法为: Double Area():返回面:返回面Surface 在其参照系统中的面积。在其参照系统中的面积。 Double Perimeter():返回面:返回面Surface 在其参照系统中的周在其参照系统中的周长。长。92 Double Centroid():返回面:返回面Surface 在其参照系统中的质心。在其参照系统中的质心。 Double PointOnSurface():返回面:返回面Surface 上的点。上

55、的点。几何对象模型几何类的定义)几何对象模型几何类的定义)十一、多边形十一、多边形Polygon 多边形多边形Polygon是面是面Surface的子类,由一个外部边界的子类,由一个外部边界和和0个或多个内部边界洞组成。多个内外边界互不相交,个或多个内部边界洞组成。多个内外边界互不相交,只能在边界上相切于一个点。多边形只能在边界上相切于一个点。多边形Polygon 内部点集是互内部点集是互相连接的、闭合的。相连接的、闭合的。 多边形多边形Polygon没有新增属性,新增方法为:没有新增属性,新增方法为: Geometry ExteriorRing():前往:前往 Polygon 的外环。的外环

56、。 Int NumInteriorRings():前往:前往 Polygon 环的数量。环的数量。 List InteriorRings():前往:前往 Polygon 内部内部环的集合。环的集合。 几何对象模型几何类的定义)几何对象模型几何类的定义)十二、面集合十二、面集合MultiSurface 面集合面集合MultiSurface是几何体集合是几何体集合Geometry Collection的子类,是的子类,是元素为面元素为面Surface的的2维几何体集合。面集合维几何体集合。面集合MultiSurface 中任何两个面中任何两个面Surface的内部不能相交,边界可相交于有限个点。的

57、内部不能相交,边界可相交于有限个点。 面集合面集合MultiSurface是一个非实例化的抽象类,它为子类定义了一是一个非实例化的抽象类,它为子类定义了一系列方法。面集合系列方法。面集合MultiSurface的可实例化子类是多边形集合的可实例化子类是多边形集合MultiPolygon,它是多边形,它是多边形Polygon的集合。的集合。 多边形集合多边形集合MultiPolygon没有新增属性,新增方法为:没有新增属性,新增方法为: Double Area():求面集合:求面集合MultiSurface 在其参照系统中的面积。在其参照系统中的面积。 Double Perimeter():求面

58、集合:求面集合MultiSurface 在其参照系统中的周在其参照系统中的周长。长。92 Double Centroid():求面集合:求面集合 MultiSurface 在其参照系统中的质在其参照系统中的质心。心。 Double PointOnSurface():求面集合:求面集合MultiSurface上的一个点。上的一个点。几何对象模型几何类的定义)几何对象模型几何类的定义)十三、多边形集合十三、多边形集合MultiPolygon 多边形集合多边形集合MultiPolygon是面集合是面集合MultiSurface的子类,的子类,是元素为是元素为 Polygon的面集合的面集合Multi

59、Surface。其中任何两个元素。其中任何两个元素多边形多边形 Polygon 的内部不能相交,边界可相交接触于有的内部不能相交,边界可相交接触于有限个点。限个点。 多边形多边形Polygon 内部点集是互相连接的、闭合的。多边形内部点集是互相连接的、闭合的。多边形集合集合MultiPolygon 中至少有两个多边形中至少有两个多边形Polygon 不连接。多不连接。多边形集合边形集合MultiPolygon 是其每个元素的边界线构成的集合。是其每个元素的边界线构成的集合。 多边形集合多边形集合MultiPolygon没有新增属性和新增方法。没有新增属性和新增方法。Back纯关系实现空间要素关

60、系模式)纯关系实现空间要素关系模式)一、空间要素的关系模式一、空间要素的关系模式 要素表是一个标准关系表,必须包含一到多个特殊的要素表是一个标准关系表,必须包含一到多个特殊的几何属性域几何属性域geometry。几何数据独立于要素表之外存储在。几何数据独立于要素表之外存储在单独的几何表中,几何表的主码单独的几何表中,几何表的主码GID作为要素表的外码存作为要素表的外码存储在要素表的几何域中,要素表中每个几何属性域对应一储在要素表的几何域中,要素表中每个几何属性域对应一个具体的几何表或视图)。个具体的几何表或视图)。 关系数据库中,一个专题转换为一个要素关系表关系数据库中,一个专题转换为一个要素

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论