当前位置: 首页 > 专利查询>南京大学专利>正文

空间数据引擎中复杂窗口空间信息提取方法技术

技术编号:6826048 阅读:338 留言:0更新日期:2012-04-11 18:40
空间数据引擎中复杂窗口空间信息提取方法,提出一种将线及多边形图层数据按照扫描带分带存储的思想,为线和多边形数据库表构建相应的辅助表,空间数据实现分带存储,以借助这种辅助表加速空间信息提取运算效率;复杂窗口空间信息提取时,将复杂的空间关系运算转化为同一条带上的单元之间的相交或重叠判断,大大简化运算的复杂程度,避免大量的弧段求交和弧段打断重组等过程,提高运算效率,杜绝运算错误。本方法相对于传统矢量图元素空间关系运算具有无可比拟的优越性,主要体现在算法简单、程序量少、处理效率高;而相对于传统纯栅格图的元素空间关系运算方法而言,又具有运算量小、运算速度快、精度高的优点。

【技术实现步骤摘要】

本专利技术属于空间数据引擎领域,特别地涉及一种用于空间数据引擎中复杂窗口提取空间信息的方法。
技术介绍
空间数据引擎(Spatial Data Engine)是位于应用程序和数据库管理系统 (RDBMS)之间的一种中间件技术,其实质是基于商用数据库构建空间数据库,以提供数据存储、管理的功能。用户通过空间数据引擎将各种来源的空间数据提交给RDBMS进行统一管理,也可以通过空间数据引擎从RDBMS中提取满足需要的数据。基于空间数据引擎的应用系统一般可以划分为三个层次前台客户端、中间层应用服务器和后台数据库服务器,空间数据引擎属于中间层应用服务器,它向客户端提供一套空间数据的访问接口,处理客户端的请求,执行空间查询,从后台数据库服务器获得数据并返回给客户端。空间数据引擎中如何实现数据的高效快速提取是评判空间数据引擎系统设计优劣的一项重要指标。空间数据引擎向客户端提供的访问接口是通过一套符合OpenGIS规范的空间函数实现的,这套空间函数是对关系数据标准查询语言(SQL)的一种扩充,它要解决的是如何操纵空间数据和执行各种空间查询等问题。窗口空间信息提取主要是指多边形窗口对点图层、线图层或多边形图层的信息提取,一个图层在数据库中就是一张表,表中记录了图层中几何要素的空间信息和属性信息。 多边形窗口对点图层、线图层和多边形图层的空间信息提取,结果可以是与窗口相交的点、 线、多边形记录号,也可以是与窗口进行裁剪的结果点、线、多边形。空间信息提取主要步骤为⑴客户端给空间数据引擎发送请求,该请求是一条空间查询语句,语句给定了要查询的相关图层信息;(2)空间数据引擎解析查询语句,从数据库中提取数据,并按照查询语句中的空间函数,执行相关处理得到满足条件的结果集;(3)空间数据引擎将满足条件的空间信息发送给客户端。在上述步骤中,空间函数的实现效率决定了客户端与服务器之间消息传递响应的速度。目前,在这一环节中,针对空间信息的提取前人提出了一些相关的拓扑计算和多边形裁剪方法,这些方法虽然提高了空间查询效率,但是弧段之间的大量无效判断难以避免,在处理海量空间数据时效率较低,客户端和服务器端的响应速度较慢而难以满足应用。
技术实现思路
本专利技术要解决技术问题是克服现有技术的上述不足,提供一种制图过程简单、运算速度快的。为了解决以上技术问题,本专利技术提供的,包括以下步骤a、针对数据库中的线数据表和多边形数据表,分别构建各自的辅助表;其中,构建线数据表的辅助表方法如下将线数据表读入内存,构成线图层,过线图层中各线目标的端点及转折点作水平扫描线,将与扫描线相交的线目标一次分割为若干线段单元,利用所有线段单元的信息建立线数据表的辅助表,并存入数据库,该线数据表的辅助表至少包括线段单元的编号信息、线段单元的端点坐标信息、以及线段单元所属线目标的信息;构建多边形数据表的辅助表方法如下将多边形数据表读入内存,构成多边形图层,过多边形图层中各多边形的所有转折点作水平扫描线,将多边形一次分割成若干多边形单元,所述多边形单元包括梯形、三角形,利用所有多边形单元的信息建立多边形数据表的辅助表,并存入数据库,该多边形数据表的辅助表至少包括多边形单元的编号信息、多边形单元的端点坐标信息、多边形单元所属多边形的信息;b、空间数据引擎接收来自客户端的查询请求,解析查询语句,读取查询所涉图层对应的数据表,完成基本的查询过滤,所述查询所涉图层对应的数据表包括点数据表、线数据表的辅助表、多边形数据表的辅助表,过多边形窗口的转折点做水平扫描线,将多边形窗口一次分割成若干多边形窗口单元;C、判断要执行空间查询对象的类型,若查询对象为点数据,则转至步骤d ;若查询对象为线数据,则转至步骤e ;若查询对象为多边形数据,则转至步骤f ;d、将落入所有多边形窗口单元的点信息作为点数据的信息提取结果返回给空间数据引擎,并转至步骤g;e、利用线数据表的辅助表中的扫描线信息,对多边形窗口单元进行二次分割,利用多边形窗口的扫描线信息对线段单元二次分割,若查询对象为相交线数据,遍历所有由相邻扫描线构成的条带上线段单元,将与多边形窗口单元相交的线段单元所属线目标的信息作为相交线数据的信息提取结果返回给空间数据引擎,并转至步骤g ;若查询对象为裁剪线数据,遍历所有由相邻扫描线构成的条带上的线段单元,记录与多边形窗口单元相交的线段单元所属线目标的信息及交点信息,遍历完成后,为每条线目标记录其线上所有交点信息,并将位于多边形窗口单元内部的线目标的初始端点、终止端点作为相应线目标的交点予以保存,以线目标的初始端点为起点,对线目标上的各交点出现次序排序,按照排序的顺序,相邻交点依次两两组对,成对交点之间的线段即为裁剪结果,并将该成对交点之间的线段作为裁剪线数据的信息提取结果返回给空间数据引擎,并转至步骤g ;f、利用多边形数据表的辅助表中的扫描线信息,对多边形窗口单元进行二次分割,利用多边形窗口的扫描线信息对多边形单元二次分割,若查询对象为相交多边形数据, 遍历所有由相邻扫描线构成的条带上的多边形单元,将与多边形窗口相交的多边形单元所属多边形的信息作为相交多边形数据的信息提取结果返回给空间数据引擎,并转至步骤g ; 若查询对象为裁剪多边形数据,则过多边形单元与多边形窗口的交点作水平扫描线,将与该水平扫描线相交的多边形单元及多边形窗口单元进行三次分割,遍历所有由相邻扫描线构成的条带上的多边形单元,将多边形单元与多边形窗口单元重叠部分作为独立的重叠多边形单元,以重叠多边形单元为基础进行边界追踪提取多边形,并将所述通过边界追踪获得的多边形作为裁剪多边形数据的信息提取结果返回给空间数据引擎,并转至步骤g ;g、空间数据引擎将步骤d、e、f中返回的信息提取结果发送给客户端。本专利技术中,线段单元与多边形窗口单元相交的判断方法是当线段单元的两端点中只有一个端点位于同一多边形窗口单元内部,则表明该线段单元与多边形窗口单元相交。多边形单元与多边形窗口单元相交的判断方法是当多边形单元的任意斜边与多边形窗口单元的斜边相交,则表明该多边形单元与多边形窗口单元相交。其中,斜边与多边形窗口单元相交的判断方法可参见线段单元与多边形窗口单元相交的判断方法。本专利技术的有益效果是(1)、执行空间信息提取时,将线分割成线段单元,多边形分割成多边形单元,并且将多边形窗口也进行了分割。多边形窗口对点的信息提取转化为点与多边形基元的包含关系判断;多边形窗口对线的信息提取转化为多边形单元对线段单元的裁剪及相交关系判断;多边形窗口对多边形的信息提取转化为图层间多边形单元对多边形单元的裁剪及相交关系判断。大大简化运算的复杂程度,避免大量的弧段求交和弧段打断重组等过程,提高运算效率,杜绝运算错误。(2)、本专利技术方法将复杂的空间关系运算转化为位于同一条带上点与多边形(梯形)、线段与多边形(梯形)、多边形(梯形)与多边形(梯形)的空间位置关系判定,判断方法简单,易于实现,计算机的执行效率高;并且目标元素的端点、转折点以及与窗口多变性的交点都采用浮点数形式表示,在提高运算效率的情况下保证运算精度不受影响。因此,本方法相对于传统矢量图元素空间关系运算具有无可比拟的优越性,主要体现在算法简单、程序量少、处理效率高;而相对于传统纯栅格图的元素空间关系运算方法而言,本文档来自技高网
...

【技术保护点】
1. 空间数据引擎中复杂窗口空间信息提取方法,包括以下步骤:a、针对数据库中的线数据表和多边形数据表,分别构建各自的辅助表;其中,构建线数据表的辅助表方法如下:将线数据表读入内存,构成线图层,过线图层中各线目标的端点及转折点作水平扫描线,将与扫描线相交的线目标一次分割为若干线段单元,利用所有线段单元的信息建立线数据表的辅助表,并存入数据库,该线数据表的辅助表至少包括线段单元的编号信息、线段单元的端点坐标信息、以及线段单元所属线目标的信息;构建多边形数据表的辅助表方法如下:将多边形数据表读入内存,构成多边形图层,过多边形图层中各多边形的所有转折点作水平扫描线,将多边形一次分割成若干多边形单元,所述多边形单元包括梯形、三角形,利用所有多边形单元的信息建立多边形数据表的辅助表,并存入数据库,该多边形数据表的辅助表至少包括多边形单元的编号信息、多边形单元的端点坐标信息、多边形单元所属多边形的信息;b、空间数据引擎接收来自客户端的查询请求,解析查询语句,读取查询所涉图层对应的数据表,完成基本的查询过滤,所述查询所涉图层对应的数据表包括:点数据表、线数据表的辅助表、多边形数据表的辅助表,过多边形窗口的转折点做水平扫描线,将多边形窗口一次分割成若干多边形窗口单元;c、判断要执行空间查询对象的类型,若查询对象为点数据,则转至步骤d;若查询对象为线数据,则转至步骤e;若查询对象为多边形数据,则转至步骤f;d、将落入所有多边形窗口单元的点信息作为点数据的信息提取结果返回给空间数据引擎,并转至步骤g;e、利用线数据表的辅助表中的扫描线信息,对多边形窗口单元进行二次分割,利用多边形窗口的扫描线信息对线段单元二次分割,若查询对象为相交线数据,遍历所有由相邻扫描线构成的条带上线段单元,将与多边形窗口单元相交的线段单元所属线目标的信息作为相交线数据的信息提取结果返回给空间数据引擎,并转至步骤g;若查询对象为裁剪线数据,遍历所有由相邻扫描线构成的条带上的线段单元,记录与多边形窗口单元相交的线段单元所属线目标的信息及交点信息,遍历完成后,为每条线目标记录其线上所有交点信息,并将位于多边形窗口单元内部的线目标的初始端点、终止端点作为相应线目标的交点予以保存,以线目标的初始端点为起点,对线目标上的各交点出现次序排序,按照排序的顺序,相邻交点依次两两组对,成对交点之间的线段即为裁剪结果,并将该成对交点之间的线段作为裁剪线数据的信息提取结果返回给空间数据引擎,并转至步骤g;f、利用多边形数据表的辅助表中的扫描线信息,对多边形窗口单元进行二次分割,利用多边形窗口的扫描线信息对多边形单元二次分割,若查询对象为相交多边形数据,遍历所有由相邻扫描线构成的条带上的多边形单元,将与多边形窗口相交的多边形单元所属多边形的信息作为相交多边形数据的信息提取结果返回给空间数据引擎,并转至步骤g;若查询对象为裁剪多边形数据,则过多边形单元与多边形窗口的交点作水平扫描线,将与该水平扫描线相交的多边形单元及多边形窗口单元进行三次分割,遍历所有由相邻扫描线构成的条带上的多边形单元,将多边形单元与多边形窗口单元重叠部分作为独立的重叠多边形单元,以重叠多边形单元为基础进行边界追踪提取多边形,并将所述通过边界追踪获得的多边形作为裁剪多边形数据的信息提取结果返回给空间数据引擎,并转至步骤g;g、空间数据引擎将步骤d、e、f中返回的信息提取结果发送给客户端。...

【技术特征摘要】

【专利技术属性】
技术研发人员:王结臣谢顺平蒲英霞陈刚马劲松
申请(专利权)人:南京大学
类型:发明
国别省市:84

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1