Gis的空间对象描述方法和基于映射的对象处理方法

文档序号:6607756阅读:306来源:国知局
专利名称:Gis的空间对象描述方法和基于映射的对象处理方法
技术领域
本发明涉及对地观测与导航技术领域,特别是地理信息系统,更具体地说是涉及 一种空间对象的描述方法和应用按照该方法描述对象来实现对象处理的方法。
背景技术
GIS(地理信息系统)是一种存储、分析和显示空间与非空间数据的信息技术。地 理信息系统的操作对象是地理数据,其具体描述地理实体的空间特征、属性特征和时间特 征。其中,空间特征是指地理实体的空间位置及相互关系;属性特征表示地理实体的名称、 类型和数量等;时间特征指实体随时间而发生的相关变化。根据地理实体的空间图形表示 形式,一般可将空间数据抽象为点、线和面三类元素,它们的数据表达可以采用矢量或者栅 格两种组织形式,分别称为矢量数据结构和栅格数据结构。GIS数据具有数据量大,空间数据和属性数据具有不可分割的联系,以及空间数据 之间具有显着的拓扑结构等特点。对于GIS数据的存储和操作,除了常规的数据操作之外, 还有许多自身的特点,因为空间信息较之传统数据库处理的一维信息更为复杂、琐碎,致使 传统的关系数据库不能满足需要。因此近年来发展出面向对象的GIS,并且经过成长成熟,现已成为GIS的主流发展 方向。面向对象的方法为描述复杂的空间信息提供了直观、结构清晰、组织有序的方法。使 用面向对象的GIS较之传统GIS有下列优点(1)所有的地物以对象形式封装,而不是以 复杂的关系形式存储,使系统组织结构良好、清晰;(2)以对象为基础,消除了分层的概念; (3)面向对象的分类结构和组装结构使GIS可以直接定义和处理复杂的地物类型;(4)根据 面向对象后编译的思想,用户可以在现有抽象数据类型和空间操作箱上定义自己所需的数 据类型和空间操作方法,增强系统的开发性和可扩充性。所谓空间对象是对现实世界中具有空间(或地理)位置的现象的抽象,如一条道 路、一幢房子、一条河流等。地理信息系统则主要用于空间对象的描述、存储、管理、分析与 应用。其中,对空间对象的描述和空间对象的处理机制是GIS系统可满足不同需要、提高效 率和实用性的关键。对于空间对象的描述有多种途径,基于XML的描述方式是当前最先进的方式之 一。XML格式自1998年由W3C提出以来,随着Web技术的发展,发展至今已经成为了网络 数据传输与交换的一种最为广泛采用的标准。同时由于XML良好的结构化,能实现结构、 内容、表现的分离;具有开放性和可扩充性;以及其自描述的特性,易于理解和支持跨平台 操作,使得XML同时在网络之外的更为广阔的领域得到应用。特别是2000年OGC(Open Geospatial Consortium,开放地理信息联盟)推出了 XML DTD的GML,它是一种基于XML、 并用于表示地理空间对象的空间数据和非空间属性数据的地理标记语言,并很有可能将成 为空间信息传输与交换的标准格式。但是,上述的现有技术只是提供了对空间对象的描述和空间对象的处理机制的框 架或思路,对于具体的实现形式,并没有一种良好的描述和处理方法。这主要是因为,现有的空间对象的描述结构要比关系数据库来得复杂,且对于不同的空间对象可能还会涉及不 同的描述方式,结构繁冗而缺乏通用性;并且对象处理也很困难。由于GIS数据量往往很 大,在进行数据处理时要占用大量的内存空间,无论是对象本身在内存空间的占位还是对 象操作的线程所需的额外内存池空间都是相当大的系统开销。

发明内容
本发明的目的是提供一种灵活的可以描述任何空间对象的方法,克服现有描述空 间对象过于限制的缺点,同时,提供一种基于上述描述的对象处理方法,以通过合理平衡地 开销计算机内存空间,提高空间对象处理的速度。为此,本发明提供了一种地理信息系统的空间对象描述方法,将一个空间对象描 述分为“特性”和“操作”两部分,“特性”用于描述空间对象的数据,“操作”用于空间对象 的处理;并且,所述“特性”进一步分为基本特性和可扩展特性,所述”操作”分为基本操作 和可扩展操作。其中,所述可扩展特性通过解释一数据对的语义规则进行定义,每一可扩展特 性包括数据单元和解释单元,其中,数据单元用于描述该可扩展特性对应的具体数据,而解 释单元用于对数据单元内的数据进行解释。较佳地,其中,所述可扩展特性包括一几何特性,所述几何特性使用解释串和坐标 串分别为解释单元和数据单元对其进行描述,其中,坐标串为一个数组,存放坐标信息;解 释串为另一个数组,用于解释存放坐标的方式。其中,所述可扩展操作通过关键词——值对的语义规则进行定义,其中,“关键词” 表示操作类型,“值”表示操作参数。此外,本发明还提供了一种地理信息系统的空间对象处理方法,用于基于上方法 描述的空间对象进行处理,所述方法包括以下步骤S10,确定当前空间对象的类型;S20,根据空间对象的类型判断内存中有无适配的空间对象池;如果已经存在,则 继续步骤340 ;如果没有,则进行步骤S30,根据当前对象的大小初始化一空间对象池;S40,将当前空间对象装载到适配的空间对象池;S50,使用对象映射方法对内存池中的空间对象进行处理;S60,返回处理后的空间对象。其中,所述将当前空间对象装载到适配的空间对象池的步骤是若池子的刻度大于 该空间对象,则直接装载该空间对象到池中,若池子的刻度小于该空间对象,则扩展池子的 刻度以适应该空间对象,并重新计算池子的平均大小。其中,所述对象映射方法是将源对象根据一映射规则变换到目标对象,其包括以 下步骤将装载到空间对象池中的对象与规则中的源对象匹配;对匹配成功的对象根据需 要进行处理,以确定目标对象;根据确定的目标对象对源对象进行转换。较佳地是,所述对象映射规则是用XML格式描述。本发明的技术方案的优点在于(1)通过可扩展特性和可扩展操作可描述任意空间对象。需要时,可以定义空间对 象的一元操作(如克隆,或拷贝等)、二元操作(如相等关系,相加等)以及多元操作。
4
(2)基于对象映射的处理方法,通过重复利用空间对象池、减小频繁分配计算空间 的设计,可以获得较好的空间对象处理效率,并减少对象开销的计算空间。(3)通过XML格式描述池中空间对象的映射方法,满足表达空间对象处理的各种需求。


图1是应用本发明空间对象描述方法的空间对象结构示意图;图2A是本发明空间对象可扩展特性的几何特性坐标串的一实施例;图2B是本发明空间对象可扩展特性的几何特性坐标串的另一实施例;图3是本发明空间对象处理过程的流程图;图4是本发明映射方法的原理示意图;图5是根据本发明的映射方法从源对象到目标对象的映射过程示意图。
具体实施例方式< 一 >空间对象的描述本发明的空间对象描述方法为将一个空间对象描述为“特性”和“操作”两部分, 参见图1所示。其中,“特性”用于描述空间对象的数据,“操作”用于空间对象的处理。“特 性”进一步分为基本特性和可扩展特性,“操作”也分为基本操作和可扩展操作。其中,可扩 展特性和可扩展操作作为可扩展部分,通过一种解释——数据对的语义规则进行定义。为了便于对空间对象的理解,下面以空间对象的C++类(部分)代码形式为例(代 码1),进行详细说明。本领域技术人员当理解,本文以C++类为例,仅是为了描述和理解的 方便,本发明的思想并不局限于任何特定的计算机语言或任何特定的编码形式。C++类只是 作为一种优选的实例,并且由于C++应用的广泛性能便于更多的本领域技术人员对本案有 更好的理解。代码1 空间对象的描述class GObject{public:GObject (); GObjectO ;private:H基本特性Longm_oid ;string m_name ;void* m_pIntepret ;void氺 m_pCoordinates ;void* m_pStruct ;void氺 m_pAttribute ;H扩展特性
5get_Dimension (); get_Envelope (); AsTextO ;
Excute(char氺kvp)void氺 m_pExtDescription ;void氺 m_pExtData ;public:H基本操作longdouble*char*H扩展操作char*};其中,对象的基本特性包括名称、解释、坐标、结构、属性等;基本操作则包括获取 对象的尺寸、轮廓、内容等;这些基本部分(即基本特性和基本操作)可根据国际标准化组 织(ISO)的相关标准确定,并按照GIS系统的实际需要定义,在此不再赘述,本领域技术人 员可通过查询相关行业标准得以详细了解。大致来说,基本操作一般是提取特征等不涉及 对象的特性改变的操作,因此其操作比较简单易行,对GIS系统整体性能影响不大。下面重 点描述可扩展部分。可扩展特性通过一种解释——数据对的语义规则进行定义。即每一可扩展特性包 括数据单元和解释单元,其中,数据单元用于描述该可扩展特性对应的具体数据,而解释单 元用于对数据单元内的数据进行解释。例如,欲描述空间对象的可扩展特性为几何特性,使用解释串和坐标串分别为解 释单元和数据单元对其进行描述,具体如下坐标串可设为一个数组,存放坐标信息。例如设为double型数组,比较适宜坐标 数据的精度需求。而存放坐标的方法由解释串解释。参考图2A所示,坐标串为可为这样一 组数据串,其第0数据单元用作数据串头,存放与坐标串数据结构或属性有关的信息,例如 每个坐标数据占用的数组元素存储空间的多少,例如,一个坐标数据对应double数组中的 一个元素。当然,也可以不设数据串头。解释串同样可设为一个数组,例如由多个三元组(offset,type, pre)构成,它用 于解释坐标串的内容。由于解释串通常是整数元素,不涉及高精度运算,一般long型数组 即可,以节约空间和加快运算速度。在每个三元组中Offset 表示当前元素第一个坐标在坐标串中的偏移量,即表示其为对应第几个 坐标数据。从1开始,参见图2A,例如Offset = 3则对应表示当前元素第一个坐标在坐标 串中的坐标数据3。Type 表示当前元素的类型,例如,1表示单点(point),2表示线(polyline),3表 示面(polygon),4或5表示混合元素。Pre 用于进一步解释以上元素。更为详细的解释串三元组的值及含义的一个优选实施例如表1所示。当然本领域 技术人员也可根据需要为各变量设置不同的含义。表1解释串三元组的值及含义 多个三元组的解释串连续排列,再与相应的数据串结合,就形成了对空间对象的 完整几何描述。例如,表2所示的解释串表示的对于二维空间对象几何描述。表2 二维空间对象解释串示例 上述坐标串和解释串同样也可以用于描述栅格数据。对于栅格数据,扩展解释串 和坐标串定义的方法可为在解释串三元组中,Type固定为一特定值,该特定值选择为与 坐标数据的情况不同,例如为33,表示是栅格数据元素;Pre解释当前元素的数据类型标 识。在坐标串中,前20个double型数据用于表示栅格块对象的属性,接着存储块的实际数 据,并根据解释串进行解释,参见图2B所示。前20个属性数据的意义为1_4个数据表示 栅格块数据的左上角图像坐标和块的宽高,5-10个数据表示栅格块数据的地理坐标范围和 分辨率,11-20个数据被预留。可扩展特性还可包括其它各种类型,本领域技术人员可以根据需要在本发明的教 导下自行设定,在此不再赘述列举。对空间对象的操作可以分为属性操作和对象操作,前者利用对象的特性进行计算 并返回一个属性值,但对象本身的数据并不改变。后者直接作用于(并修改)对象的数据, 没有返回值。其中,如果对象的描述和操作设计不当,在运行中将占用大量内存资源,导致 GIS系统运行缓慢和效率低下。对于后者(即对象操作)尤其如此。本发明的可扩展操作 将有助于解决这一问题。在本发明中,可扩展操作通过一种关键词——值对(key-value-pair,KVP)的语义 规则进行定义。其中,“关键词”表示操作类型,“值”表示操作参数。例如,对于空间对象的 位置偏移操作的KVP举例为(opName = offset ; x0 = 100,y0 = 100), off set表示位置偏移操作,它是一个对象操作,操作参数为(100,1000)。对于对象的操作多种多样,这里就不 一一列举,本领域技术人员可以根据需要自行选择和定义相应的操作。例如,投影变换,坐 标转换,对象名称和类型修改,特性数据增加、删除、修改等。下面将结合具体的实施例对本发明空间对象的处理方法进行说明。结合该说明同 时也将使对可扩展操作有更切实的理解。〈二〉空间对象处理方法本发明的空间对象处理方法是实际上是一种基于映射的方法,通过建立空间对象 池,将空间对象池中的对象与映射规则中的源对象进行匹配来实现对象处理。图3是本发明空间对象处理方法的流程图。其中,首先应为空间对象分配相应的 空间对象池。所谓空间对象池可以看作是一种装载空间对象的容器,类似于内存中为进程 创建的内存池,它也可视为内存空间中的一段存储区域,略有不同的是每个空间对象池是 用于存储某一类型的空间对象。因此,空间对象处理的第一步骤是确定当前空间对象的类型(步骤310),之后根 据空间对象的类型分配相应的内存池。分配的过程是先判断内存中有无适配(主要是名称 和类型的匹配)的空间对象池(步骤320),如果已经存在,则继续步骤340;如果没有,则 根据当前对象的大小初始化一空间对象池(步骤330),以与之适配,之后再进行后续步骤 340,将当前空间对象装载到适配的空间对象池。其中,同类型的空间对象池的大小(占用的计算机内存大小和位置)相对固定,但 也可调节。调节的方法如下如上所述,当需要处理一个空间对象时,首先根据空间对象的 类型找到适配的空间对象池。如果当前没有适配的空间对象池,则根据当前对象的大小初 始化一个空间对象池。其中,若池子的刻度大于该空间对象,直接装载该空间对象到池中, 若池子的刻度小于该空间对象,则扩展池子的刻度以适应该空间对象,并重新计算池子的 平均大小。接下来,进行步骤350,对池子中的空间对象进行处理,需要进行处理的种类根据 对象映射方法(在下面描述)确定。最后,返回处理后的空间对象(步骤360),根据统计的 池平均大小调整池的刻度。当池子不再需要使用时,或当计算任务结束后释放池占用的计 算空间。其中,空间对象映射方法是本发明创造性地提出的一种解决空间对象处理问题的 方法。其通过建立源对象与目标对象的映射之间的映射规则来实现对空间对象的高效处理。本发明的对象映射方法,可采用XML格式描述池中空间对象的各种处理需求,包 括投影变换,坐标转换,对象名称和类型修改,特性数据增加、删除、修改等。映射中主要包 括一个规则标识(RuleID)属性,一个源对象(SOURCE)元素,一个目标对象(DESTINATION) 元素。如图4所示。映射规则的描述有多种方式,其中以XML描述作为一种优选的方式具 有结构清晰、易用性好等优点,并且利于在GML中的应用。后文列举一段定义空间对象映射规则的XML模式片断(代码2),以利于读者对本 发明的映射规则有更直观的认识。具体实现对象映射的步骤则如图5所示。首先在步骤510,将装载到空间对象池中 的对象与规则中的源对象匹配,这一步骤的目的是确定规则是否能够适用,只有进行匹配的两者的池名称、类型及其他条件一致时匹配成功。接下来在步骤520,对匹配成功的对象 根据需要进行处理,以确定目标对象,包括但不限于确定目标对象的池名称、别名、类型。之 后,进行步骤530,对源对象的空间特性、属性值等进行转换(Trmsform)。较佳地,所述转 换可以是可扩展的以满足不同需要的算子。代码2 〈? xml version=" 1.0" encoding=" GB2312" ? >〈xs: schema xmlns =" http://www. geostar. com. cn/gdc" ><xs:element name =/r GDC_MappingFile/r abstract = /r false" ><xs: complexType><xs:choice minOccurs =" 0" maxOccurs 二” unbounded" >〈xs: element name 二 “ GDC_RULE “ type ="GDCRuleType" minOccurs=" 0" /></xs: choice)</xs: complexType>〈/xs: element〉<xs:complexType name =/r GDCRuleType" ><xs: sequence)〈xs:element name =" SOURCE" ><xs: complexType><xs: sequence)〈xs:element name = “ PoolName “ type =” xs: string" />〈xs: element name = “ Type “ type =“GeometryTypeType“ />〈xs:element name = “ Condition “ type ="GDCConditionType" />〈/xs: sequence)〈/xs: complexType>〈/xs: element〉〈xs:element name =" DESTINATION" ><xs: complexType><xs: sequence)〈xs:element name = “ PoolName “ type ="xs:string" />〈xs: element name = " Alias" type = " xs: string" />〈xs: element name = “ Type “ type =“GeometryTypeType“ />〈xs:element name = “ Transform “ type ="xs:string" />
10
<xs element name = " AttributePair " type ="AttributePairType" /></xs: sequence)</xs:complexType></xs:element)</xs:sequence)<xs:attribute name = 〃 RuleID 〃 type = 〃 xs: ID 〃 use
="required" /></xs: complexType></xs:schema)以上对本发明的描述是说明性的,而非限制性的,本专业技术人员理解,在权利要 求限定的精神与范围之内可对其进行许多修改、变化或等效,但是它们都将落入本发明的 保护范围内。
权利要求
一种地理信息系统的空间对象描述方法,其特征在于,将一个空间对象的描述分为“特性”和“操作”两部分,“特性”用于描述空间对象的数据,“操作”用于空间对象的处理;并且,所述“特性”进一步分为基本特性和可扩展特性,所述”操作”分为基本操作和可扩展操作。
2.根据权利要求1所述的空间对象描述方法,其特征在于,所述可扩展特性通过解 释——数据对的语义规则进行定义,每一可扩展特性包括数据单元和解释单元,其中,数据 单元用于描述该可扩展特性对应的具体数据,而解释单元用于对数据单元内的数据进行解 释。
3.根据权利要求2所述的空间对象描述方法,其特征在于,所述可扩展特性包括几何 特性,所述几何特性使用解释串和坐标串分别为解释单元和数据单元对其进行描述,其中, 坐标串为一个数组,存放坐标信息;解释串为另一个数组,用于解释存放坐标的方式。
4.根据权利要求1所述的空间对象描述方法,其特征在于,所述可扩展操作通过关键 词——值对的语义规则进行定义,其中,“关键词”表示操作类型,“值”表示操作参数。
5.一种地理信息系统的空间对象处理方法,用于基于上方法描述的空间对象进行处 理,其特征在于,所述方法包括以下步骤S10,确定当前空间对象的类型;S20,根据空间对象的类型判断内存中有无适配的空间对象池;如果已经存在,则继续 步骤340 ;如果没有,则进行步骤S30,根据当前对象的大小初始化一空间对象池;S40,将当前空间对象装载到适配的空间对象池;S50,使用对象映射方法对内存池中的空间对象进行处理;S60,返回处理后的空间对象。
6.根据权利要求5所述的空间对象处理方法,其特征在于,所述将当前空间对象装载 到适配的空间对象池的步骤是若池子的刻度大于该空间对象,则直接装载该空间对象到池 中,若池子的刻度小于该空间对象,则扩展池子的刻度以适应该空间对象,并重新计算池子 的平均大小。
7.根据权利要求5所述的空间对象处理方法,其特征在于,所述对象映射方法是将源 对象根据一映射规则变换到目标对象,其包括以下步骤将装载到空间对象池中的对象与规则中的源对象匹配;对匹配成功的对象根据需要进行处理,以确定目标对象;根据确定的目标对象对源对象进行转换。
8.根据权利要求7所述的空间对象处理方法,其特征在于,所述对象映射规则是用XML 格式描述。
全文摘要
本发明涉及地理信息系统的空间对象描述方法,其将一个空间对象描述分为特性和操作两部分,特性用于描述空间对象的数据,操作用于空间对象的处理;并且,所述特性进一步分为基本特性和可扩展特性,所述操作分为基本操作和可扩展操作。以及按照上述描方法述的空间对象的处理方法,包括以下步骤确定当前空间对象的类型;根据空间对象的类型判断内存中有无适配的空间对象池;如果没有根据当前对象的大小初始化一空间对象池;之后将当前空间对象装载到适配的空间对象池;使用对象映射方法对内存池中的空间对象进行处理;并返回处理后的空间对象。其中,所述空间对象池大小可变,且所述对象映射规则是用XML格式描述。
文档编号G06F17/30GK101908074SQ20101025442
公开日2010年12月8日 申请日期2010年8月11日 优先权日2010年8月11日
发明者刘双全, 宋爱红, 王建光, 许继伟, 邓跃进, 雷振, 黄俊韬 申请人:武大吉奥信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1