gis1117
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
阅读:9933回复:4

GeoStar空间数据组织与管理

楼主#
更多 发布于:2003-11-23 17:29
摘 要 讨论了GeoStar系统空间数据组织与管理中的若干问题,重 点介绍了空间矢量
对象模型、数据组织、数据管理以及对象的实现等内容。
关键词 空间数据;对象模型;工作区;工程
分类号 P208
Spatial Data Organization and Management in GeoStar
ZHU Xinyan GONG Jianya HUANG Juntao XIONG Hanjiang
(National Laboratory for Information Engineering in Surveying,Mapping and Re
mote Sensing,
WTUSM,129 Luoyu Road,Wuhan,China,430079)
Abstract:GeoStar is an object-oriented geographical information system ,wh
ich integrated various data sources such as vector,attribute,DEM an d image.
In this paper,the authors discuss Geo-Star's vector object model, data organ
ization,data management and object implementation.
  In GeoStar,spatial objects are classified into point object,line object
and su rface object,etc.according to their geometrical features.The attribu
te data of these objects are stored in relative tables and are connected by
an object iden ti fication (OID).GeoStar organizes these objects into featur
e classes and workspac es and then a project.In order to manage the objects,
features,workspaces and projects,an object storage manager and object manage
r are developed .The object storage manager is mainly in charge of accessing
of various spatial objects,es tablishing spatial index, accomplishing stori
ng permanent objects and making spa tial operation log and resuming the spat
ial objects when it is necessary.The ob ject manager is mainly in charge of
creating spatial objects,assigning the uniq ue ID of object and workspace,co
mpleting every fundamental spatial query,maint aining the consistency of spa
tial objects,accomplishing multi-users management and management of feature
classes,feature layers,workspaces and projects under the network circumstanc
e.A set of classes which manage the objects,features,workspaces and projects
are a lso provided,and can be used to develop applications by user.
  GeoStar organizes spatial data on the basis of object-oriented method.Ac
cord in g to the idea,everything and conception in real world are described
as objects. A spatial linear object or a surface object may consist of thous
ands of poi nts.Two methods can be used to realize the spatial object.One is
describing in ner points of a line or an area as independent point objects,
making it easy to do a variety of operations with every point object; the ot
her is not describing inner points of a line and a surface as a whole instea
d of single point object. Consequently,the inner information must be interpr
eted by the methods.If we ch aracterize every point as an object,instantiati
ng an object of a line or a surf ace need too much of “new” operation.“Ne
w” operation itself spends too much time,and also brings memory fragments.B
oth of them lower the efficiency of syste m.Therefore,the second method was
adopted in the implement of line and area obj ects in GeoStar.
  The experience of the implement of GeoStar indicates that organizing and
managin g s patial data with object-oriented method is feasible.But,in the
implemen t of object-oriented method,we should not use the pure conception o
f object-ori ented,or else it will lower the efficiency of system.
Key words:spatial data;object model; workspace;project
1 对象模型
1.1 空间对象分类
  GeoStar空间对象按其几何特征可以分为点、线、面等多种几何类型。GeoStar支持
以下几种类型的对象(简称几何对象)。
  1)单点对象
  单点对象用来描述空间点状地物,如大地水准点、电线杆等被视为点的地物。可用
三维坐标来确定它在三维空间中的位置。
  2)点群对象
  点群对象用来将多个点组成一个整体,赋予统一的属性。其坐标数据相应地由表示
其分布的每个点的三维坐标组成。
  3)线状对象
  线状对象用来表示现实世界中的线状地物,如单线河、道路、等高线等。其坐标数
据由二维坐标和第三维坐标两部分组成。二维坐标用一系列(x,y)来描述;第三维坐标分
为几种类型:无高程;单一高程(组成线的所有点的第三维坐标具有单一高程值);每个
点一个高程(组成线的所有点各点有一个高程值)。
  4)面状对象
  4)面状对象
  面状对象用来描述现实世界中的面状地物,如行政区域、房屋、湖泊等。面状对象
的边界描述为圈,圈是一个封闭的多边形,它由一系列(x,y)坐标串构成。面状对象的第
三维可通过DEM来表示。GeoStar系统中一个面状对象可以由一个圈组成,也可以由多个
圈组成,其中包括带岛情况。其坐标数据外圈按顺时针方向排列,内圈按逆时针方向排
列。如图1所示,其中,图1(a)是由一个圈构成的面;图1(b)是由两个圈构成的面;图1
(c)是一个由两个圈构成的带岛的面。
图1 GeoStar系统中几种不同情况的面
Fig.1 Different Surfaces in GeoStar
  5)注记对象
  注记对象用来表示一些空间几何对象对应的地物的描述性信息。由于注记需要记录
其标注的位置,故GeoStar将注记对象划为几何对象。其空间位置由一系列(x,y,d)来
决定,其中,(x,y)为注记左下角位置;d为注记的方向(用弧度表示)。因此,GeoSta
r可以将多个分散的注记点作为一个整体来处理。由于注记对象并不对应现实世界中的地
物,所以它是这几种空间几何对象中惟一没有属性的对象类型。当注记必须与现实世界
的地物对应时,注记对象的对象标识可以连接到相应的几何对象。
1.2 对象的属性
  点状对象、点群对象、线状对象、面状对象可以有与之相对应的属性数据,属性数
据存储于关系表格中,通过ODBC链接。几何对象与属性数据之间的联系通过系统分配的
惟一标识建立。
  对象标识(OID)是惟一标识一个对象的记号,每个对象都有一个惟一的OID,且不
同的对象OID也不同。系统必须提供对象标识的统一分配机制,用户自己不能对OID进行
更改。GeoStar系统中用一个32位的整数来表示对象标识,系统分配的OID大于0。OID小
于0时用来表示线段的方向,OID等于0无效。OID是几何对象与属性数据之间联系的桥梁
,与几何对象对应的属性表中都建立一个OID字段,通过OID可以找到相应对象的属性信
息。同样,通过属性值可以得到相应的OID,从而得到几何对象。
1.3 直接对象和间接对象
  线状对象和面状对象的位置信息可以直接用一系列(x,y)坐标表示,也可以引用其
他已定义的线状对象,前者称为直接对象,后者称为间接对象。间接对象的引入可以减
少公共边的重复存储,其位置信息用一系列被引用的线状对象的对象标识OID来表示。由
于OID大于0,所以记录被引用的线状对象时,在OID前加负号来表示坐标序列的顺序。如
果OID前无负号,则表示在间接对象中的坐标顺序与被引用的线状对象的坐标顺序相同;
如果OID前有负号,则表示在间接对象中的坐标顺序与被引用的线状对象的坐标顺序相反

2 空间数据组织
  在空间对象的基础上,GeoStar将数据组织为地物类、层、工作区和工程。
  1)地物类
  地物类是指具有相同空间几何特征和属性特征的空间对象的集合,如河流、公路、
行政区域、居民地等都可作为地物类。每个地物类必须给定一个系统中惟一的编码,称
为地物类码(UserId或FeatureId)。每一个地物类编码可以有一个地物类名与之对应,同
一个地物中的几何对象共享一个属性结构,且有一个属性表与之对应。多个地物类可以
对应同一个属性表,同一个地物类中的所有对象共享相同的颜色、符号、线型等特性。
对同一地物类中的几何对象可以实施相同的操作,如显示或关闭某个地物类;查询某个
地物类对象的属性信息;设定某个地物类可以显示的最大/最小比例尺等。
  2)层
  2)层
  层定义在地物类之上,它是多个地物类的集合。为了操作和工程管理的方便,将管
理和使用上相关的多个地物类定义为一个层。例如,单线河、双线河、湖泊等都是地物
类,在这些地物类上,可以定义一个水系的层,对层中各个地物类的所有对象可以同时
实施关闭或显示操作。如果关闭一个层,则这个层中的所有地物类都不可视;如果打开
(显示)一个层,则这个层中的地物类恢复原来的显示状态。
  3)工作区
  工作区是GeoStar完整的数据组织单位。GeoStar的数据都储存在工作区,用户通过
使用工作区来操纵空间数据。工作区中的信息包括层信息、地物类信息、各种类型的对
象以及属性数据。
  工作区是指一定区域范围内地物层的集合,其区域范围可以根据实际需要来决定,
如可以按一个图幅范围定义或按多个连续的图幅范围定义,也可以不按图幅范围定义。
各个工作区的范围之间可以相互重叠。
  工作区的空间数据可用图2所示的目录结构来组织。
图2 工作区目录结构
Fig.2 Workspace Directory Structure
  4)工程
  工程是具有相同特征的工作区的集合,用来管理大型的空间数据。工程的工作区的
数据要求具有相同的坐标系和比例尺,有相同的投影方式。
  工程的信息由工作区提交后形成。工作区提交后,系统对空间数据进行重新组织,
并作相应的相容性检查。对每个提交后的工作区,系统自动分配一个惟一标识号wsid。
由wsid和工作区内的对象标识OID来共同标识工程中的一个对象。工程的数据目录结构如
图3所示。
图3所示。
图3 工程目录结构
Fig.3 Project Directory Structure
3 空间数据管理
3.1 空间数据管理的组成与功能
  空间数据管理主要由对象存储管理器和对象管理器组成,如图4所示。
图4 空间数据管理组成
Fig.4 The Constitution of Spatial Data Management
  对象存储管理器主要负责对空间各类对象的存取,建立空间索引,实现对持久对象
的存储,以及记录空间操作的事物日志,并且在必要时对空间对象进行恢复。
  对象管理器主要负责空间对象的生成,分配对象和工作区的惟一标识,实现对空间
对象的调度,完成各种基本的空间查询,维护空间对象的一致性,实现在网络环境下多
用户控制,并实现对地物类、层、工作区、工程等内容的管理。
  GeoStar空间数据管理由CGeoDBSystem、CGeoDBProject以及CGeoDBWorkspace等类相
互配合共同来完成。CGeoDBWorkspace负责对工作区内部的数据组织;CGeoDBProject负
责对工程数据进行组织;而CGeoDBSystem负责空间数据整体管理和协调。因此,用GeoS
tar的基本开发函数API来进行二次开发时,必须建立一个CGeoDBSystem的对象才能利用
GeoStar的空间数据管理功能。
3.2 空间数据调度
  GeoStar面向大型空间数据管理,因此,空间数据调度就显得特别重要。通常,Geo
Star并不把所有空间数据调到内存,而是在实际用到时,根据需要来决定调入或调出哪
些数据。一般情况下,GeoStar以工作区的地物类来进行调度,根据界面的操作信息,系
统自行决定何时需要调用哪些地物类,何时淘汰哪些地物类。在用户进行二次开发时,
由于界面的操作信息要由二次开发用户(利用应用程序开发函数(API)开发或开发运行动
态扩展模块的用户)来设计,因此,二次开发用户对空间数据调度也应有一定的介入。二
次开发用户如果发现某一地物类不在内存,则可以显式调入。
3.3 空间数据管理的工作流程
  如上所述,GeoStar空间数据库的管理是通过空间数据库管理对象CGeoDBSystem来实
现的。CGeoDBSystem对象主要实现对工作区对象和工程对象的维护与管理。当用户的命
令下达给CGeoDBSystem对象以后,CGeoDBSystem对象根据当前的状态,将命令进一步下
达给涉及到的GeoStar工作区对象(CGeoDBWorkspace)和GeoStar工程对象(CGeoDBProjec
t),GeoStar工作区对象和GeoStar工程对象在经过必要的数据处理后将结果返回给CGeo
DBSystem对象,CGeoDBSystem对象最终将结果返回给用户,如图5所示。
图5 数据管理的工作流程
Fig.5 The Work Flow of Data Management
3.4 空间数据库管理的类体系
  GeoStar采用面向对象的方法来实现,其中空间目标以及数据管理都用类来实现,类
中封装了必要的数据成员和成员函数。图6给出了空间数据库管理的类体系。
图6 空间数据库管理类体系
Fig.6 The Class Hierarchy of Spatial Database Management
4 空间对象的实现问题
  GeoStar根据面向对象的思想来组织空间数据。按照面向对象的方法,客观世界的一
切事物、概念等都表示为对象。空间线状对象、面状对象由一系列空间点构成。在空间
对象的实现上,线状对象、面状对象可以有两种方法:①将线、面内部的点都描述为各
个独立的点状对象,对每个点状对象可以方便地实行各种操作;②线、面内部的点不描
述为独立点状对象,而是作为一个整体,内部信息必须由应用程序去解释。第一种方法
更加符合面向对象的思想,更加方便编程。但由于空间数据量一般都很大,一个复杂的
线、面可能由成千上万个点构成,如果每个点都表示为对象,在对象的实例化时会过多
地使用内存分配的new操作。一方面new操作本身会占用很多时间,另一方面,new操作会
带来内存的碎片,两者都会降低系统的效率。因此,GeoStar中线状对象、面状对象的实
现使用第二种方法。
基金项目:国家科技部、国家测绘局“九五”科技攻关资助项目,编号96-B02-03-03。

作者简介:朱欣焰,男,37岁,教授,现主要从事GIS、空间数据库研究。代表成果:G
IS中多用户环境下数据共享一致性问题研究。
     E-mail:zxy@rcgis.wtusm.edu.cn
作者单位:朱欣焰(武汉测绘科技大学测绘遥感信息工程国家重点实验室,武汉市珞喻
路129 号,430079)
     龚健雅(武汉测绘科技大学测绘遥感信息工程国家重点实验室,武汉市珞喻
路129 号,430079)
     黄俊韬(武汉测绘科技大学测绘遥感信息工程国家重点实验室,武汉市珞喻
路129 号,430079)
     熊汉江(武汉测绘科技大学测绘遥感信息工程国家重点实验室,武汉市珞喻
路129 号,430079)
参考文献:
[1] 冯玉才.数据库系统基础(第二版).武汉:华中理工大学出版社,1993
[2] 朱欣焰,许云涛,张银洲,等.面向对象的语义数据模型及其在空间数据库中的
应用.武汉测绘科技大学学报,1993,18(4):76~81
[3] 龚健雅,朱欣焰,李爱勤,等.地理信息系统基础软件吉奥之星NT版的总体设计
思想与关键技术.武汉测绘科技大学学报,1997,22(3):187~190
喜欢0 评分0
fireline99
论坛版主
论坛版主
  • 注册日期2003-07-29
  • 发帖数309
  • QQ
  • 铜币390枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2003-11-27 08:43
顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
举报 回复(0) 喜欢(0)     评分
威海清风
路人甲
路人甲
  • 注册日期2004-01-13
  • 发帖数99
  • QQ
  • 铜币262枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-02-18 11:26
GeoStar有拓朴关系吗?
------------------------------------------------------------------- ======>我的脚步想要去流浪<====== -------------------------------------------------------------------
举报 回复(0) 喜欢(0)     评分
huangzuowei1
路人甲
路人甲
  • 注册日期2003-12-22
  • 发帖数862
  • QQ102995869
  • 铜币2229枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-03-09 21:07
thank you very much!
举报 回复(0) 喜欢(0)     评分
flystreet7
路人甲
路人甲
  • 注册日期2004-11-09
  • 发帖数78
  • QQ
  • 铜币371枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-06-16 22:53
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" />no men
举报 回复(0) 喜欢(0)     评分
游客

返回顶部