CN108090150B - Gis空间对象存储方法及其系统 - Google Patents

Gis空间对象存储方法及其系统 Download PDF

Info

Publication number
CN108090150B
CN108090150B CN201711306098.3A CN201711306098A CN108090150B CN 108090150 B CN108090150 B CN 108090150B CN 201711306098 A CN201711306098 A CN 201711306098A CN 108090150 B CN108090150 B CN 108090150B
Authority
CN
China
Prior art keywords
space
geometric
data
type
spatial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711306098.3A
Other languages
English (en)
Other versions
CN108090150A (zh
Inventor
孙亚义
黄超
江颖
林黎鸣
卓坤城
王伟莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Epgis Information Technology Co ltd
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Great Power Science and Technology Co of State Grid Information and Telecommunication Co Ltd
Original Assignee
Xiamen Epgis Information Technology Co ltd
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Great Power Science and Technology Co of State Grid Information and Telecommunication Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen Epgis Information Technology Co ltd, State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, Great Power Science and Technology Co of State Grid Information and Telecommunication Co Ltd filed Critical Xiamen Epgis Information Technology Co ltd
Priority to CN201711306098.3A priority Critical patent/CN108090150B/zh
Publication of CN108090150A publication Critical patent/CN108090150A/zh
Application granted granted Critical
Publication of CN108090150B publication Critical patent/CN108090150B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种GIS空间对象存储方法及其系统,包括:方法定义存储至数据库磁盘文件中的空间对象的二进制存储格式和数据类型,所述数据类型包括对象构造方法、输入输出函数和几何类型函数;依据所述几何空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据;依据所述空间对象的MBR构造搜索树,关联所述空间索引数据与搜索树;获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据。本发明提供能够降低空间数据在关系型数据库中的占用大小和提高数据库对于空间数据查询及获取的效率。

Description

GIS空间对象存储方法及其系统
技术领域
本发明涉及GIS系统空间数据管理领域,具体说的是一种GIS空间对象存储方法及其系统。
背景技术
地理信息系统(GIS)是在计算机硬、软件系统支持下,对整个或部分地理空间中的有关地理分布数据进行采集、存储、管理、运算、分析、显示和描述的技术系统。其核心在于针对空间数据的表达、存储以及分析。
目前,针对空间数据管理的数据库,一种主流技术主要采用“关系型数据库+空间数据引擎”的解决方案,比如ArcGIS的SDE。此方式存在一个较大的缺点,空间数据的空间操作和处理无法在数据库内核中体现、数据模型复杂、SQL扩展较难。另一种主流技术采用“扩展空间对象关系型数据库”的方案,此方式的优点在于空间数据的管理与数据库融为一体,空间数据按照对象存储,可在数据库内核中实现空间操作和处理,扩展SQL较为方便,较易实现数据共享与互操作。目前采取此方式主要的有Oracle Spatial、DB2Spatial Extender等,但这些产品在数据压缩和读写性能上均比第一种方案存在差距。
本发明旨在采用“扩展空间对象关系型数据库”的基础上,设计一种GIS空间对象存储方法及其系统,提高空间数据的压缩率和读写性能。
发明内容
本发明所要解决的技术问题是:提供一种GIS空间对象存储方法及其系统,提高空间数据的压缩率和读写性能。
为了解决上述技术问题,本发明采用的技术方案为:
一种GIS空间对象存储方法,包括:
定义存储至数据库磁盘文件中的空间对象的二进制存储格式和数据类型,所述数据类型包括对象构造方法、输入输出函数和几何类型函数;
依据所述几何空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据;
依据所述空间对象的MBR构造搜索树,关联所述空间索引数据与搜索树;
获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据。
本发明提供的另一个技术方案为:
一种GIS空间对象存储系统,包括:
几何对象模块,用于定义存储至数据库磁盘文件中的空间对象的二进制存储格式和数据类型,所述数据类型包括对象构造方法、输入输出函数和几何类型函数;
空间索引模块,用于依据所述几何空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据;以及,用于依据所述空间对象的MBR构造搜索树,关联所述空间索引数据与搜索树;
空间操作模块,用于获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据。
本发明的有益效果在于:本发明一方面采用特定设计的二进制存储格式,可以有效提高GIS空间对象在数据表中的数据压缩率,降低空间数据在关系型数据库中的占用大小,同时进一步提高空间对象的构造和存取性能;另一方面,通过优化的空间索引数据结构和计算方法,经过筛选作用提高空间查询的速度和效率,满足日益增长的空间数据规模。
附图说明
图1为本发明一种GIS空间对象存储方法的流程示意图;
图2为本发明实施例一中空间对象二进制存储格式的结构示意图;
图3为本发明实施例一中几何空间对象的二进制存储格式的结构示意图;
图4为本发明实施例一中空间索引算法原理流程示意图;
图5为本发明一种GIS空间对象存储系统的结构示意图。
附图标号说明
1、几何对象模块;2、空间索引模块;3、空间操作模块。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:提供一种空间对象二进制存储格式及其存取和构造方法,以及一种空间索引数据结构和计算方法。降低空间数据在关系型数据库中的占用大小和提高数据库对于空间数据查询及获取的效率。
PostgreSQL数据库中的几何对象(Geometry):几何对象由一个系列坐标值所组成,枚举GeometryType定义了几何对象的类型。
a、Point;
b、LineString:由一个或多个相连的线段所组成的集合;
c、CurveString:由相连的线段或圆弧所组成的集合;
d、Polygon:由一个外环和零个或多个内环所组成的面,每个环都是闭合的,并且由一些相连的线段所组成;
e、CurvePolygon:由一个外环和零个或多个内环所组成的面,每个环都是闭合的,并且由一些相连的线段或圆弧所组成;
f、MultiPoint:多个点;
g、MultiLineString:多个LineString;
h、MultiCurveString:多个CurveString;
i、MultiPolygon:多个Polygon;
j、MultiCurvePolygon:多个CurvePolygon;
k、MultiGeometry:一个异构的几何对象集合,这个集合中可以包含以上任何类型的几何对象。
上述许多类型的几何对象都是使用到了线段和圆弧,线段由两个坐标值所定义,代表一段直线段,圆弧由三个坐标值所定义,第一个点和第三个点代表圆弧的起点和终点,第二个点代表圆弧段的中间点。
系统为各种几何对象的描述提供了点、线、面和几何对象集合体等四种基本数据类型,其中几何对象集合体又分为点集、线集、面集三种。按照OpenGIS规范的几何对象模型,Point、LineString、Polygon和GeomeryCollection分别表示这四种几何对象,而MultiPoint、MultiLineString、MultiPolygon分别表示点集、线集、面集。
请参照图1、图2以及图3,本发明提供一种GIS空间对象存储方法,包括:
定义存储至数据库磁盘文件中的空间对象的二进制存储格式和数据类型,所述数据类型包括对象构造方法、输入输出函数和几何类型函数;
依据所述几何空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据;
依据所述空间对象的MBR构造搜索树,关联所述空间索引数据与搜索树;
获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据。
进一步的,所述二进制存储格式为序列化二进制格式,所述序列化二进制格式包括二进制对象大小、空间参考定义、空间对象标志、包围盒和空间对象数据。
进一步的,所述二进制存储格式为序列化的二进制格式,包括几何对象个数、每个几何对象的序列化二进制数据;
定义存储至数据库磁盘文件中的空间对象的二进制存储格式,具体为:
序列化空间对象数据,当空间对象的几何类型为点时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串,其中坐标点个数为0或1;
当几何类型为线或圆弧时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串;其中坐标点个数为n或0;
当几何类型为面时,其对应的二进制存储格式为面环个数、每个环的坐标点个数、数据对齐填补、每个环的空间坐标串;
当几何类型为集合对象集或混合线时,其对应的二进制存储格式为几何对象个数、每个几何对象的序列化二进制数据;
空间对象的几何类型为点、线、圆弧或面时,空间坐标串均为8维度个字节双精度浮点型值。
由上述描述可知,通过二进制对象大小可获取完整的空间对象序列化数据内容。
进一步的,所述依据输入的几何空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据,具体为:
将空间对象的数据分解成矩形、子矩形和/或子子矩形;然后按照范围划分,每个节点对应一个区域和一个磁盘页面,非叶子节点的磁盘页面中存储其所有子节点的区域范围,非叶子节点的所有子节点的区域都落在所述区域范围之内;叶子节点的磁盘页面中存储其区域范围之内的所有空间对象的外接矩形;每个节点所能拥有的子节点数目有上、下限,下限保证对磁盘空间的有效利用,上限保证每个节点对应一个磁盘页面,当插入新的节点导致某节点要求的空间大于一个磁盘页面时,该节点一分为二。
由上述描述可知,提供一种空间索引数据结构和计算方法,提高数据库对于空间数据查询及获取的效率。
进一步的,所述获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据,具体为:
定义包括点、线、面和几何集合四种基础几何类型;所述基础集合类型同时支持包括GML、WKT、WKB、EWKT、EWKB的标准格式的转换;
获取一空间对象,将其转换为基础几何类型;
计算所述一空间对象对应的基础几何类型在所述索引树中包括相等、包含、相交、相离、重叠、覆盖的空间位置以及包括距离、长度和面积的空间数据。
本发明提供的另一个技术方案为:
一种GIS空间对象存储系统,包括:
几何对象模块,用于定义存储至数据库磁盘文件中的空间对象的二进制存储格式和数据类型,所述数据类型包括对象构造方法、输入输出函数和几何类型函数;
空间索引模块,用于依据所述几何空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据;以及,用于依据所述空间对象的MBR构造搜索树,关联所述空间索引数据与搜索树;
空间操作模块,用于获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据。
进一步的,所述二进制存储格式为序列化二进制格式,所述序列化二进制格式包括二进制对象大小、空间参考定义、空间对象标志、包围盒和空间对象数据。
进一步的,所述二进制存储格式为序列化的二进制格式,包括几何对象个数、每个几何对象的序列化二进制数据;
所述几何对象模块,具体用于序列化空间对象数据,当空间对象的几何类型为点时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串,其中坐标点个数为0或1;当几何类型为线或圆弧时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串;其中坐标点个数为n或0;当几何类型为面时,其对应的二进制存储格式为面环个数、每个环的坐标点个数、数据对齐填补、每个环的空间坐标串;当几何类型为集合对象集或混合线时,其对应的二进制存储格式为几何对象个数、每个几何对象的序列化二进制数据;空间对象的几何类型为点、线、圆弧或面时,空间坐标串均为8维度个字节双精度浮点型值。
进一步的,所述几何对象模块,还用于将空间对象的数据分解成矩形、子矩形和/或子子矩形;然后按照范围划分,每个节点对应一个区域和一个磁盘页面,非叶子节点的磁盘页面中存储其所有子节点的区域范围,非叶子节点的所有子节点的区域都落在所述区域范围之内;叶子节点的磁盘页面中存储其区域范围之内的所有空间对象的外接矩形;每个节点所能拥有的子节点数目有上、下限,下限保证对磁盘空间的有效利用,上限保证每个节点对应一个磁盘页面,当插入新的节点导致某节点要求的空间大于一个磁盘页面时,该节点一分为二。
进一步的,所述空间操作模块,具体用于定义包括点、线、面和几何集合四种基础几何类型;所述基础集合类型同时支持包括GML、WKT、WKB、EWKT、EWKB的标准格式的转换;获取一空间对象,将其转换为基础几何类型;计算所述一空间对象对应的基础几何类型在所述索引树中包括相等、包含、相交、相离、重叠、覆盖的空间位置以及包括距离、长度和面积的空间数据。
实施例一
请参照图2至图4,本实施例提供一种符合OpenGIS规范的GIS空间对象存储方法,可以包括以下步骤:
一、基于PostgreSQL数据库提供一种空间对象二进制存储格式及其存取和构造方法,用于表达点、线、面以及多点、多线、多面、集合对象集的几何对象数据类型。
具体的,该部分可以包括以下子步骤:
Step 1:请参照图2和图3,定义数据库磁盘文件中的空间对象序列化二进制格式,包含二进制对象大小(SIZE)、空间参考定义(SRID)、空间对象标志(是否包括Z轴、M轴、包围盒、是否大地坐标系)(FLAG)、包围盒(BBOX)、空间对象数据(TYPE,NUMBER,POINTS)。其中SIZE为4个字节整型值,SRID为三个字节整型值,FLAG为一个字节,当空间对象为非单点、非单线时,BBOX为16-40个字节双精度浮点型值,分别为xmin、xmax、ymin、ymax、zmin和zmax(如果为大地坐标系)、zmin和zmax(如果包括Z轴)、mmin和mmax(如果包括M轴)。
Step 2:序列化的空间对象数据,当几何类型为点时,二进制格式为几何类型(TYPE)、坐标点个数(NUMBER,0或1)、空间坐标串(POINTS),其中TYPE为4个字节整型值,NUMBER为4个字节整型值,POINTS为8*dim(维度)个字节双精度浮点型值;当几何类型为线或圆弧时,二进制格式为几何类型(TYPE)、坐标点个数(NUMBER,n或0)、空间坐标串(POINTS),其中TYPE为4个字节整型值,NUMBER为4个字节整型值,POINTS为8*dim(维度)*NUMBER个字节双精度浮点型值;当几何类型为面时,二进制格式为面环个数(NRINGS)、每个环的坐标点个数(NUMBER1、NUMBER2、…、NUMBERN)、数据对齐填补(PAD,奇数环时)、每个环的空间坐标串(POINTS),其中TYPE为4个字节整型值,NRINGS为4个字节整型值,NUMBER1、NUMBER2、…、NUMBERN均为4个字节整型值,PAD为4个字节整型值,POINTS为8*dim(维度)*(NUMBER1+NUMBER2+…+NUMBERN)个字节双精度浮点型值;当几何类型为集合对象集或混合线时,二进制格式为几何对象个数(NGEOM)、每个几何对象的序列化二进制数据(GEOM),其中,每个几何对象的GEOM按照上述规则递归展开。
Step 3:定义数据库空间对象数据类型,包含对象构造方法、输入输出函数、几何类型函数等。
该步骤的实施方式如下:
输入:空间几何对象输入函数(空间几何参数);
输出:空间几何对象输出函数(返回空间几何对象)
几何类型输入:空间几何对象类型输入函数(空间几何类型参数);
几何类型输出:空间几何对象类型输出函数(返回空间几何类型);
对齐方式:空间几何对象二进制格式对齐方式(双精度浮点型)。
二、提供一种空间索引数据结构和计算方法,提高数据库对于空间数据查询及获取的效率。
具体的,该部分可以包括以下子步骤:
Step 1:创建一个并发和可恢复的高度平衡搜索树,来实现空间数据可以被自然排序为超集的层次结构。
该树用空间对象的MBR(最小包围矩形)来近似表达空间对象,根据MBR来建立。(说明:该索引树借鉴成熟的R树数据结构及算法,在R树基础上通过聚合构造空间索引。)
具体实施方式如下:
1.1搜索:
R树的搜索返回的结果是所有符合查找信息的记录条目。输入是一个搜索矩形。伪代码:
Function:搜索
描述:假设T为一棵R树的根结点,查找所有搜索矩形S覆盖的记录条目。
S1:[查找子树]如果T是非叶子结点,如果T所对应的矩形与S有重合,那么检查所有T中存储的条目,对于所有这些条目,使用搜索操作作用在每一个条目所指向的子树的根结点上(即T结点的孩子结点)。
S2:[查找叶子结点]如果T是叶子结点,如果T所对应的矩形与S有重合,那么直接检查S所指向的所有记录条目。返回符合条件的记录。
1.2插入
R树当新的数据记录需要被添加入叶子结点时,若叶子结点溢出,那么需要对叶子结点进行分裂操作。显然,叶子结点的插入操作会比搜索操作要复杂。插入操作需要一些辅助方法才能够完成。伪代码:
Function:插入
描述:将新的记录条目E插入给定的R树中。
I1:[为新记录找到合适插入的叶子结点]开始叶子节点选择方法选择叶子结点L以放置记录E。
I2:[添加新记录至叶子结点]如果L有足够的空间来放置新的记录条目,则向L中添加E。如果没有足够的空间,则进行子节点分裂方法以获得两个结点L与LL,这两个结点包含了所有原来叶子结点L中的条目与新条目E。
I3:[将变换向上传递]开始对结点L进行R树平衡调整操作,如果进行了分裂操作,那么同时需要对LL进行R树平衡调整操作。
I4:[对树进行增高操作]如果结点分裂,且该分裂向上传播导致了根结点的分裂,那么需要创建一个新的根结点,并且让它的两个孩子结点分别为原来那个根结点分裂后的两个结点。
Function:叶子节点选择
描述:选择叶子结点以放置新条目E。
CL1:[初始化]设置N为根结点。
CL2:[叶子结点的检查]如果N为叶子结点,则直接返回N。
CL3:[选择子树]如果N不是叶子结点,则遍历N中的结点,找出添加E.I时扩张最小的结点,并把该结点定义为F。如果有多个这样的结点,那么选择面积最小的结点。
CL4:[下降至叶子结点]将N设为F,从CL2开始重复操作。
Function:R树平衡调整
描述:叶子结点的改变向上传递至根结点以改变各个矩阵。在传递变换的过程中可能会产生结点的分裂。
AT1:[初始化]将N设为L。
AT2:[检验是否完成]如果N为根结点,则停止操作。
AT3:[调整父结点条目的最小边界矩形]设P为N的父节点,EN为指向在父节点P中指向N的条目。调整EN.I以保证所有在N中的矩形都被恰好包围。
AT4:[向上传递结点分裂]如果N有一个刚刚被分裂产生的结点NN,则创建一个指向NN的条目ENN。如果P有空间来存放ENN,则将ENN添加到P中。如果没有,则对P进行子节点分裂操作以得到P和PP。
AT5:[升高至下一级]如果N等于L且发生了分裂,则把NN置为PP。从AT2开始重复操作。
1.3删除
R树的删除操作会涉及到压缩等操作,同样是比较复杂的,需要用到一些辅助函数来完成整个操作。伪代码:
Function:删除
描述:将一条记录E从指定的R树中删除。
D1:[找到含有记录的叶子结点]使用查找叶子节点方法找到包含有记录E的叶子结点L。如果搜索失败,则直接终止。
D2:[删除记录]将E从L中删除。
D3:[传递记录]对L使用R树缩减冗余操作
D4:[缩减树]当经过以上调整后,如果根结点只包含有一个孩子结点,则将这个唯一的孩子结点设为根结点。
Function:查找叶子节点
描述:根结点为T,期望找到包含有记录E的叶子结点。
FL1:[搜索子树]如果T不是叶子结点,则检查每一条T中的条目F,找出与E所对应的矩形相重合的F(不必完全覆盖)。对于所有满足条件的F,对其指向的孩子结点进行查找叶子节点操作,直到寻找到E或者所有条目均以被检查过。
FL2:[搜索叶子结点以找到记录]如果T是叶子结点,那么检查每一个条目是否有E存在,如果有则返回T。
Function:R树缩减冗余
描述:L为包含有被删除条目的叶子结点。如果L的条目数过少(小于要求的最小值m),则必须将该叶子结点L从树中删除。经过这一删除操作,L中的剩余条目必须重新插入树中。此操作将一直重复直至到达根结点。同样,调整在此修改树的过程所经过的路径上的所有结点对应的矩形大小。
CT1:[初始化]令N为L。初始化一个用于存储被删除结点包含的条目的链表Q。
CT2:[找到父条目]如果N为根结点,那么直接跳转至CT6。否则令P为N的父结点,令EN为P结点中存储的指向N的条目。
CT3:[删除下溢结点]如果N含有条目数少于m,则从P中删除EN,并把结点N中的条目添加入链表Q中。
CT4:[调整覆盖矩形]如果N没有被删除,则调整EN.I使得其对应矩形能够恰好覆盖N中的所有条目所对应的矩形。
CT5:[向上一层结点进行操作]令N等于P,从CT2开始重复操作。
CT6:[重新插入孤立的条目]所有在Q中的结点中的条目需要被重新插入。原来属于叶子结点的条目可以使用插入操作进行重新插入,而那些属于非叶子结点的条目必须插入删除之前所在层的结点,以确保它们所指向的子树还处于相同的层。
Step 2:请参照图4所述算法描述,将对象空间数据分解成矩形、子矩形、子子矩形等,然后按照范围划分,每个节点对应一个区域和一个磁盘页面,非叶子节点的磁盘页面中存储其所有子节点的区域范围,非叶子节点的所有子节点的区域都落在它的区域范围之内;叶子节点的磁盘页面中存储其区域范围之内的所有空间对象的外接矩形。每个节点所能拥有的子节点数目有上、下限,下限保证对磁盘空间的有效利用,上限保证每个节点对应一个磁盘页面,当插入新的节点导致某节点要求的空间大于一个磁盘页面时,该节点一分为二。
三、提供遵循OpenGIS规范的空间对象定义和功能性函数,满足数据库针对空间对象的空间操作和空间分析要求。
定义了点、线、面和几何集合四种基础几何类型,同时支持GML、WKT、WKB、EWKT、EWKB等标准格式的转换,并提供了相等、包含、相交、相离、重叠、覆盖等空间位置判断以及距离、长度、面积等空间计算方法。
实施例二
请参照图5,本实施例提供一种GIS空间对象存储系统,包括:
几何对象模块1,用于定义存储至数据库磁盘文件中的空间对象的二进制存储格式和数据类型,所述数据类型包括对象构造方法、输入输出函数和几何类型函数。
其中,所述二进制存储格式为序列化二进制格式,所述序列化二进制格式包括二进制对象大小、空间参考定义、空间对象标志、包围盒和空间对象数据。
在一具体实施方式中,几何对象模块具体用于序列化空间对象数据,当空间对象的几何类型为点时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串,其中坐标点个数为0或1;当几何类型为线或圆弧时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串;其中坐标点个数为n或0;当几何类型为面时,其对应的二进制存储格式为面环个数、每个环的坐标点个数、数据对齐填补、每个环的空间坐标串;当几何类型为集合对象集或混合线时,其对应的二进制存储格式为几何对象个数、每个几何对象的序列化二进制数据;空间对象的几何类型为点、线、圆弧或面时,空间坐标串均为8维度个字节双精度浮点型值。
以及用于将空间对象的数据分解成矩形、子矩形和/或子子矩形;然后按照范围划分,每个节点对应一个区域和一个磁盘页面,非叶子节点的磁盘页面中存储其所有子节点的区域范围,非叶子节点的所有子节点的区域都落在所述区域范围之内;叶子节点的磁盘页面中存储其区域范围之内的所有空间对象的外接矩形;每个节点所能拥有的子节点数目有上、下限,下限保证对磁盘空间的有效利用,上限保证每个节点对应一个磁盘页面,当插入新的节点导致某节点要求的空间大于一个磁盘页面时,该节点一分为二。
空间索引模块2,用于依据所述几何空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据;以及,用于依据所述空间对象的MBR构造搜索树,关联所述空间索引数据与搜索树;
空间操作模块3,用于获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据。
在一具体实施方式中,所述空间操作模块具体用于定义包括点、线、面和几何集合四种基础几何类型;所述基础集合类型同时支持包括GML、WKT、WKB、EWKT、EWKB的标准格式的转换;获取一空间对象,将其转换为基础几何类型;计算所述一空间对象对应的基础几何类型在所述索引树中包括相等、包含、相交、相离、重叠、覆盖的空间位置以及包括距离、长度和面积的空间数据。
综上所述,本发明提供的一种GIS空间对象存储方法及其系统,采用特定设计的二进制存储格式,可以有效提高GIS空间对象在数据表中的数据压缩率,降低空间数据在关系型数据库中的占用大小,同时进一步提高空间对象的构造和存取性能;进一步的,通过优化的空间索引数据结构和计算方法,经过筛选作用提高空间查询的速度和效率,满足日益增长的空间数据规模。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种GIS空间对象存储方法,其特征在于,包括:
定义存储至数据库磁盘文件中的空间对象的二进制存储格式和数据类型,所述数据类型包括对象构造方法、输入输出函数和几何类型函数,所述二进制存储格式为序列化二进制格式,所述序列化二进制格式包括二进制对象大小、空间参考定义、空间对象标志、包围盒和空间对象数据;
依据所述空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据;
依据所述空间对象的MBR构造搜索树,关联所述空间索引数据与搜索树;
获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据;
所述二进制存储格式为序列化的二进制格式,包括几何对象个数、每个几何对象的序列化二进制数据;
定义存储至数据库磁盘文件中的空间对象的二进制存储格式,具体为:
序列化空间对象数据,当空间对象的几何类型为点时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串,其中坐标点个数为0或1;
当几何类型为线或圆弧时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串;其中坐标点个数为n或0;
当几何类型为面时,其对应的二进制存储格式为面环个数、每个环的坐标点个数、数据对齐填补、每个环的空间坐标串;
当几何类型为集合对象集或混合线时,其对应的二进制存储格式为几何对象个数、每个几何对象的序列化二进制数据;
空间对象的几何类型为点、线、圆弧或面时,空间坐标串均为8维度个字节双精度浮点型值。
2.如权利要求1所述的GIS空间对象存储方法,其特征在于,所述依据输入的几何空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据,具体为:
将空间对象的数据分解成矩形、子矩形和/或子子矩形;然后按照范围划分,每个节点对应一个区域和一个磁盘页面,非叶子节点的磁盘页面中存储其所有子节点的区域范围,非叶子节点的所有子节点的区域都落在所述区域范围之内;叶子节点的磁盘页面中存储其区域范围之内的所有空间对象的外接矩形;每个节点所能拥有的子节点数目有上、下限,下限保证对磁盘空间的有效利用,上限保证每个节点对应一个磁盘页面,当插入新的节点导致某节点要求的空间大于一个磁盘页面时,该节点一分为二。
3.如权利要求1所述的GIS空间对象存储方法,其特征在于,所述获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据,具体为:
定义包括点、线、面和几何集合四种基础几何类型;所述基础几何类型同时支持包括GML、WKT、WKB、EWKT、EWKB的标准格式的转换;
获取一空间对象,将其转换为基础几何类型;
计算所述一空间对象对应的基础几何类型在所述搜索树中包括相等、包含、相交、相离、重叠、覆盖的空间位置以及包括距离、长度和面积的空间数据。
4.一种GIS空间对象存储系统,其特征在于,包括:
几何对象模块,用于定义存储至数据库磁盘文件中的空间对象的二进制存储格式和数据类型,所述数据类型包括对象构造方法、输入输出函数和几何类型函数,所述二进制存储格式为序列化二进制格式,所述序列化二进制格式包括二进制对象大小、空间参考定义、空间对象标志、包围盒和空间对象数据;
空间索引模块,用于依据所述空间对象对应的二进制存储格式和数据类型,计算和存储空间索引数据;以及,用于依据所述空间对象的MBR构造搜索树,关联所述空间索引数据与搜索树;
空间操作模块,用于获取一空间对象,将其转换为基础几何类型,并计算其对应所述搜索树的空间位置和空间数据;
所述二进制存储格式为序列化的二进制格式,包括几何对象个数、每个几何对象的序列化二进制数据;
所述几何对象模块,具体用于序列化空间对象数据,当空间对象的几何类型为点时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串,其中坐标点个数为0或1;当几何类型为线或圆弧时,其对应的二进制存储格式为几何类型、坐标点个数和空间坐标串;其中坐标点个数为n或0;当几何类型为面时,其对应的二进制存储格式为面环个数、每个环的坐标点个数、数据对齐填补、每个环的空间坐标串;当几何类型为集合对象集或混合线时,其对应的二进制存储格式为几何对象个数、每个几何对象的序列化二进制数据;空间对象的几何类型为点、线、圆弧或面时,空间坐标串均为8维度个字节双精度浮点型值。
5.如权利要求4所述的GIS空间对象存储系统,其特征在于,所述几何对象模块,还用于将空间对象的数据分解成矩形、子矩形和/或子子矩形;然后按照范围划分,每个节点对应一个区域和一个磁盘页面,非叶子节点的磁盘页面中存储其所有子节点的区域范围,非叶子节点的所有子节点的区域都落在所述区域范围之内;叶子节点的磁盘页面中存储其区域范围之内的所有空间对象的外接矩形;每个节点所能拥有的子节点数目有上、下限,下限保证对磁盘空间的有效利用,上限保证每个节点对应一个磁盘页面,当插入新的节点导致某节点要求的空间大于一个磁盘页面时,该节点一分为二。
6.如权利要求4所述的GIS空间对象存储系统,其特征在于,所述空间操作模块,具体用于定义包括点、线、面和几何集合四种基础几何类型;所述基础几何类型同时支持包括GML、WKT、WKB、EWKT、EWKB的标准格式的转换;获取一空间对象,将其转换为基础几何类型;计算所述一空间对象对应的基础几何类型在所述搜索树中包括相等、包含、相交、相离、重叠、覆盖的空间位置以及包括距离、长度和面积的空间数据。
CN201711306098.3A 2017-12-11 2017-12-11 Gis空间对象存储方法及其系统 Active CN108090150B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711306098.3A CN108090150B (zh) 2017-12-11 2017-12-11 Gis空间对象存储方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711306098.3A CN108090150B (zh) 2017-12-11 2017-12-11 Gis空间对象存储方法及其系统

Publications (2)

Publication Number Publication Date
CN108090150A CN108090150A (zh) 2018-05-29
CN108090150B true CN108090150B (zh) 2020-12-15

Family

ID=62174596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711306098.3A Active CN108090150B (zh) 2017-12-11 2017-12-11 Gis空间对象存储方法及其系统

Country Status (1)

Country Link
CN (1) CN108090150B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109657022B (zh) * 2018-12-08 2020-06-30 拉扎斯网络科技(上海)有限公司 商户查找方法、装置、电子设备和存储介质
CN109829021A (zh) * 2019-01-04 2019-05-31 广州市城市规划勘测设计研究院 一种地图展示方法及装置
CN110928968B (zh) * 2019-11-12 2023-04-11 天津大学 一种二维地理空间大数据的存储与查询计算机介质
US11762932B2 (en) * 2020-06-30 2023-09-19 Amazon Technologies, Inc. Spatial search using key-value store
CN113312436B (zh) * 2020-07-27 2024-04-19 阿里巴巴集团控股有限公司 空间索引的处理方法及装置
CN114357062B (zh) * 2021-04-22 2022-08-02 星杓(成都)信息科技有限公司 一种基于空间位置分割的矢量数据重叠或缝隙检查方法
CN113204553B (zh) * 2021-05-07 2021-12-14 北京连山科技股份有限公司 一种基于GeoHash的矢量数据编译方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306166A (zh) * 2011-08-22 2012-01-04 河南理工大学 一种移动地理信息空间索引方法
CN103176990A (zh) * 2011-12-21 2013-06-26 方正国际软件(北京)有限公司 一种空间数据的存储和读取方法及系统
CN105786822A (zh) * 2014-12-18 2016-07-20 高德软件有限公司 电子地图中查询空间对象和建立空间索引的方法及装置
CN106649882A (zh) * 2017-01-10 2017-05-10 浪潮通信信息系统有限公司 一种应用于电信领域的空间数据管理中间件及其实现方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520801B (zh) * 2009-01-14 2011-03-23 中国科学院地理科学与资源研究所 一种数据库空间几何对象存取方法
CN101719154B (zh) * 2009-12-24 2012-03-28 北京中科通图信息技术有限公司 一种基于栅格结构的空间索引建立方法和系统
CN102682103B (zh) * 2012-04-28 2014-03-26 北京建筑工程学院 一种面向海量激光雷达点云模型的三维空间索引方法
KR101764615B1 (ko) * 2015-04-13 2017-08-03 숭실대학교산학협력단 공간 지식 추출기 및 추출 방법
US10789231B2 (en) * 2016-05-19 2020-09-29 Oracle International Corporation Spatial indexing for distributed storage using local indexes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306166A (zh) * 2011-08-22 2012-01-04 河南理工大学 一种移动地理信息空间索引方法
CN103176990A (zh) * 2011-12-21 2013-06-26 方正国际软件(北京)有限公司 一种空间数据的存储和读取方法及系统
CN105786822A (zh) * 2014-12-18 2016-07-20 高德软件有限公司 电子地图中查询空间对象和建立空间索引的方法及装置
CN106649882A (zh) * 2017-01-10 2017-05-10 浪潮通信信息系统有限公司 一种应用于电信领域的空间数据管理中间件及其实现方法

Also Published As

Publication number Publication date
CN108090150A (zh) 2018-05-29

Similar Documents

Publication Publication Date Title
CN108090150B (zh) Gis空间对象存储方法及其系统
Ooi Efficient query processing in geographic information systems
Arge The buffer tree: A technique for designing batched external data structures
Samet et al. Spatial Data Models and Query Processing.
Van Oosterom Variable-scale topological data structures suitable for progressive data transfer: The GAP-face tree and GAP-edge forest
EP1234258B1 (en) System for managing rdbm fragmentations
US20040006574A1 (en) Methods of navigating a cube that is implemented as a relational object
Fang et al. Spatial indexing in microsoft SQL server 2008
CN108292315A (zh) 储存和检索数据立方体中的数据
Silva-Coira et al. Efficient processing of raster and vector data
Rigaux et al. Building a constraint-based spatial database system: model, languages, and implementation
JPS62145369A (ja) 図形デ−タの検索方法
Eldawy et al. Sphinx: empowering impala for efficient execution of SQL queries on big spatial data
Kim et al. Spatial data management in database systems: research directions
Xing et al. Accelerating array joining with integrated value-index
CN113485638B (zh) 一种面向海量天文数据的存取优化系统
Liu et al. Analysis of spatial indexing mechanism and its application in data management: A case study on spatialite database
Lin et al. Database-oriented storage based on LMDB and linear octree for massive block model
Ding et al. A learned spatial textual index for efficient keyword queries
JP2004534981A (ja) データベース・システムでデータを編成し、問合せを処理する方法、およびそのような方法を実施するためのデータベース・システムおよびソフトウェア製品
Ren et al. Intelligent visualization system for big multi-source medical data based on data lake
Kantabutra et al. Intentionally-Linked Entities: A Better Database System for Representing Dynamic Social Networks, Narrative Geographic Information Sytem and General Abstractions of Reality
CN112269797A (zh) 一种卫星遥感数据在异构计算平台上的多维查询方法
Karasalo et al. The Design of Cantor-A New System for Data Analysis.
Sangat et al. Atrie group join: A parallel star group join and aggregation for in-memory column-stores

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Li Qiang

Inventor after: Sun Yayi

Inventor after: Huang Chao

Inventor after: Jiang Ying

Inventor after: Lin Liming

Inventor after: Zhuo Kuncheng

Inventor after: Wang Weili

Inventor after: Li Wenjing

Inventor after: Fu Ning

Inventor before: Sun Yayi

Inventor before: Huang Chao

Inventor before: Jiang Ying

Inventor before: Lin Liming

Inventor before: Zhuo Kuncheng

Inventor before: Wang Weili