CN115422196A - 一种矢量数据拓扑关系检查方法 - Google Patents
一种矢量数据拓扑关系检查方法 Download PDFInfo
- Publication number
- CN115422196A CN115422196A CN202211080369.9A CN202211080369A CN115422196A CN 115422196 A CN115422196 A CN 115422196A CN 202211080369 A CN202211080369 A CN 202211080369A CN 115422196 A CN115422196 A CN 115422196A
- Authority
- CN
- China
- Prior art keywords
- point
- line
- elements
- topological
- topology
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Image Analysis (AREA)
Abstract
本发明属于拓扑关系检查领域,具体涉及一种矢量数据拓扑关系检查方法。该拓扑关系检查方法通过四叉树对待检查对象的点要素和线要素进行空间划分,在每次划分时,针对性地检查特定线要素与四叉树限定区域内的点线要素之间是否存在拓扑错误,直至最终细化至象限内至多包含单个线要素为止,无需将每个线要素对应全部点线要素进行大规模全部遍历的拓扑检查过程,相较于全部遍历减小了计算量,因此能够提高检查速度;并且通过容差设置,能够确认由于误差造成的拓扑不关联点线数据之间的拓扑关系,提高拓扑检查的准确性。经过实验验证,本发明的矢量数据拓扑关系检查方法相较于现有的拓扑检查算法,所需的检查时间大大缩短,计算效率得到了显著的提高。
Description
技术领域
本发明属于拓扑关系检查领域,具体涉及一种矢量数据拓扑关系检查方法。
背景技术
拓扑关系是一种不随空间旋转、平移、放大、缩小等变换而发生改变的定性空间信息,是GIS空间推理、查询与分析的基础,直接影响GIS的发展与应用。拓扑关系检查是为了对获取到的点、线、面等原始地理空间数据进行错误检查,从而及时发现地理空间数据中不符合拓扑规则的数据,并利用相关的编辑工具进行编辑、修改等来完成地理空间数据的修正。
目前矢量数据的拓扑关系检查主要依靠C/S(Client/Server)完成;而现有技术中基于B/S架构(Browser/Server架构,即浏览器和服务器架构模式)的WebGIS系统通常缺乏此类功能,需要依赖Server端软件完成,但对于大数据量矢量管网数据,现有的Server端软件拓扑关系检查算法进行拓扑关系检查的过程较复杂,检查过程涉及的数据量较大,因此在多用户同时进行拓扑关系检查时会极大增加服务器端压力,导致计算速度慢甚至服务器崩溃。
发明内容
本发明的目的在于提供一种矢量数据拓扑关系检查方法,用于解决拓扑关系检查的过程较复杂,检查过程涉及的数据量较大、耗时较长的问题。
为了实现上述目的,本发明提供了一种矢量数据拓扑关系检查方法的技术方案,步骤如下:
1)载入待检查对象的基础数据中的点要素和线要素,同时,根据基础数据的投影坐标进行数据的预处理,获取所有基础数据的最小外接矩形;
2)建立以最小外接矩形的中心为原点的四叉树直角坐标系,通过四叉树直角坐标系的坐标轴将最小外接矩形划分为四个象限,并对所有点要素和线要素的直角坐标系进行转换,将点要素和线要素的坐标转换到四叉树直角坐标系中;
3)对四个象限中的每一个线要素进行遍历,根据线要素的起点坐标和终点坐标,判定线要素是否与该四叉树直角坐标系的原点相对应;若线要素的起点坐标和终点坐标不在同一象限,则判定线要素与该四叉树直角坐标系的原点相对应;
4)对于与该四叉树直角坐标系的原点相对应的线要素,将它与该四叉树直角坐标系对应的四个象限中的每个点要素和线要素采用拓扑检查算法进行错误检查,对拓扑错误要素进行标记;
5)以四个象限中每个象限的中心为原点,建立新的四叉树直角坐标系,每个新的四叉树直角坐标系将对应的象限划分为新的四个象限,接下来按照划分出的新的四个象限,重复步骤3)-5),直到四叉树象限内至多包含单个线要素为止,完成矢量数据拓扑关系检查,将此时被标记的拓扑错误要素作为最终的拓扑错误要素结果。
该矢量数据拓扑关系检查方法通过四叉树对待检查对象的点要素和线要素进行空间划分,基于四叉树空间索引的构思,在每次划分时,针对性地检查特定线要素与四叉树限定区域内的点线要素之间是否存在拓扑错误,直至最终细化至最小象限单元,即象限内至多包含单个线要素为止,完成矢量数据拓扑关系检查,无需将每个线要素对应全部点线要素进行大规模全部遍历的拓扑检查过程,相比全部遍历,数据量更少,计算过程更简单,因此能够提高检查速度。
进一步地,为避免数据遗漏,保证后续运算的精确性,步骤2)中,所述最小外接矩形是按照所有原始数据的最小外接矩形的中心,将该最小外接矩形向外扩大设定距离得到的图形。
进一步地,步骤4)中,采用拓扑检查算法进行错误检查方式如下:
判断点要素是否位于线要素上或是否被线要素的端点覆盖,若存在点要素没有位于线要素上或没有被线要素的端点覆盖的情况,则将该点要素标记为拓扑错误点要素;若点要素位于线要素上或被线要素的端点覆盖,则将该点要素标记为拓扑正确点要素,且后续不再对该点要素进行错误检查,在这种情况下如果该点要素已经被标记为拓扑错误点要素,则取消该标记,将该点要素重新标记为拓扑正确点要素,且后续不再对该点要素进行错误检查;
判断线要素是否相交或存在悬挂点或伪结点,若存在两个线要素相交或存在悬挂点或伪结点,则将这两个线要素标记为拓扑错误线要素。
进一步地,所述判断点要素是否位于线要素上或是否被线要素的端点覆盖的判断条件为:
获取线要素起点坐标和终点坐标,分别比较点要素坐标与线要素起点、终点坐标,若对应的横纵坐标值差值均小于拓扑容差,则判定点要素被线要素的端点覆盖,否则进行下一步判断;
求取线要素对应的最小外接矩形,若点要素位于线要素的最小外接矩形内,则进行下一步判断,否则判定点要素没有位于线要素上;
对于位于线要素的最小外接矩形内的点要素,计算线要素所在直线的斜率K,并求得该直线与纵轴的截距,计算斜率为K且过该点要素的直线与纵轴的截距,获取两截距之差,若两截距之差小于拓扑容差,则判定点要素位于该线要素上,否则判定点要素没有位于线要素上。
进一步地,所述判断线要素是否相交或存在悬挂点或伪结点的判断条件为:
根据两个线要素的起点、终点坐标,获取两个线要素的最小外接矩形;若两个线要素的最小外接矩形不存在重叠区域,则继续判断两线要素的起点、终点坐标之间的距离,若两线要素的起点、终点中任意两点坐标之间的距离大于拓扑容差,则判定所述两个线要素无拓扑错误;若两线要素的起点、终点中任意两点坐标之间的距离小于拓扑容差,则继续判断两线要素中是否存在其中一个线要素的起点与另一线要素的终点坐标对应相等的情况,若存在,则判定两个线要素无拓扑错误,若不存在,则将这两个该线要素标记为拓扑错误线要素;若判定两个线要素的最小外接矩形存在重叠区域,进行下一步判断;
计算两个线要素中任一线要素分别与该线要素对应的两个端点向量的叉乘的值,若叉乘的值均为正或均为负,则判定两个线要素无拓扑错误,否则将这两个线要素标记为拓扑错误线要素;所述与线要素对应的两个端点向量指的是以该线要素的起点为起点,以另一线要素的两个端点为终点分别构成的向量。
进一步地,所述拓扑容差为基础数据中的点要素和线要素坐标的精度的10倍。
进一步地,所述四个象限均为矩形。
附图说明
图1为本发明的矢量数据拓扑关系检查方法实施例中拓扑关系检查方法的技术路线图;
图2为本发明的矢量数据拓扑关系检查方法实施例中所有基础数据的最小外接矩形示意图;
图3为本发明的矢量数据拓扑关系检查方法实施例中通过四叉树对最小外接矩形进行划分的示意图;
图4a为本发明的矢量数据拓扑关系检查方法实施例中跨越两象限的线要素示意图;
图4b为本发明的矢量数据拓扑关系检查方法实施例中跨越三象限的线要素示意图;
图4c为本发明的矢量数据拓扑关系检查方法实施例中过原点的线要素示意图;
图5a为本发明的矢量数据拓扑关系检查方法实施例中违反点规则中点要素必须被线要素覆盖规则的示例图;
图5b为本发明的矢量数据拓扑关系检查方法实施例中违反点规则中点要素必须被线要素的端点覆盖规则的示例图;
图5c为本发明的矢量数据拓扑关系检查方法实施例中违反线规则中线要素不能有悬挂点规则的示例图;
图5d为本发明的矢量数据拓扑关系检查方法实施例中线规则中违反线要素不能有伪结点规则的示例图;
图5e为本发明的矢量数据拓扑关系检查方法实施例中线规则中违反线要素不能相交规则的示例图;
图6为本发明的矢量数据拓扑关系检查方法实施例中针对点要素进行拓扑错误检查的判断逻辑框图;
图7为本发明的矢量数据拓扑关系检查方法实施例中判断点要素是否位于线要素上的判断原理图;
图8为本发明的矢量数据拓扑关系检查方法实施例中拓扑容差原理图;
图9为本发明的矢量数据拓扑关系检查方法实施例中针对两个线要素进行拓扑错误检查的判断逻辑框图;
图10为本发明的矢量数据拓扑关系检查方法实施例中两个线要素的最小外接矩形存在重叠区域情况的示意图;
图11为本发明的矢量数据拓扑关系检查方法实施例中线要素的端点与另一线要素的位置关系的示意图;
图12a为本发明的矢量数据拓扑关系检查方法实施例的错误线要素类型中相交线要素的示例图;
图12b为本发明的矢量数据拓扑关系检查方法实施例的错误线要素类型中存在悬挂点的线要素的示例图;
图12c为本发明的矢量数据拓扑关系检查方法实施例的错误线要素类型中存在伪结点的线要素的示例图;
图13为本发明的矢量数据拓扑关系检查方法实施例中通过新的四叉树直角坐标系划分出新的四个象限的示意图;
图14为本发明的矢量数据拓扑关系检查方法实施例中本发明的矢量数据拓扑关系检查方法的检查结果示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明了,以下结合附图及实施例,对本发明进行进一步详细说明。
矢量数据拓扑关系检查方法实施例
本实施例提供了一种矢量数据拓扑关系检查方法,该拓扑关系检查方法的技术路线图参照图1,具体步骤如下:
1)载入待检查对象的基础数据中的点要素和线要素,同时,根据基础数据的投影坐标进行数据的预处理,获取所有基础数据的最小外接矩形。
本实施例中,待检查对象为Json格式文件,读取Json文件获取相应的基础数据,即管线、阀门的ArcGIS的ESRI-JSON标准Json文件格式数据;Json格式文件中包含geometryType(几何类型)、fields(字段概要)、spatialReference(空间参考)等基本信息,如表1所示,为之后的拓扑检查提供数据基础。其中features(要素)中包含各阀门点的投影坐标、点位ID以及各管线的起止点的投影坐标、线ID、线长、压力等属性。
表1 Json格式文件基础数据属性
本实施例中,根据spatialReference的属性值{"wkid":102100,"latestWkid":3857},能够得知基础数据采用的投影坐标系为WGS 84/Pseudo-Mercator--SphericalMercator,该投影坐标系的基准面是WGS 1984,采用伪墨卡托(Popular VisualizationPseudo Mercator,PVPM)的投影方法,其视图内地理范围为(-20026376.39-20048966.10,20026376.39 20048966.10)。JavaScript会将读取到的Json基础数据存储为对象,访问对象中的features属性,获取阀门点的投影坐标、点位ID以及各管线的起止点的投影坐标、线ID、线长、压力等属性,如表2及表3所示。
表2阀门点数据属性
表3管线数据属性
使用ArcGIS APl for JavaScript提供的Graphic()函数载入JavaScript对象中的点要素和线要素(即features)并存入数组中,addMany()能够将数组中的图形全部添加到graphicsLayer图形绘制图层进行显示。
在载入JavaScript对象中的点要素和线要素的同时,根据基础数据的投影坐标进行数据的预处理,获取所有原始数据的最小外接矩形,如图2所示;为避免遗漏最小外接矩形边缘数据,保证后续运算加速的精确性,此最小外接矩形向外扩大设定距离,本实施例中,该设定距离为1m,最小外接矩形向外扩大1m的具体方式是将该最小外接矩形每条边的左右两端各扩展1m,获得新的最小外接矩形,用于后续的计算。
2)建立以最小外接矩形的中心为原点的四叉树直角坐标系,通过四叉树直角坐标系的坐标轴将最小外接矩形划分为四个象限,并对所有点要素和线要素的直角坐标系进行转换,将点要素和线要素的坐标转换到四叉树直角坐标系中。
参照图3,以最小外接矩形的中心为原点的四叉树直角坐标系的坐标轴将最小外接矩形划分为4个象限,为方便后续按照四叉树继续划分象限时确定坐标原点,划分出的四个象限均为矩形。
3)对四个象限中的每一个线要素进行遍历,根据线要素的起点坐标和终点坐标,判定线要素是否与该四叉树直角坐标系的原点相对应;若线要素的起点坐标和终点坐标不在同一象限,则判定线要素与该四叉树直角坐标系的原点相对应。
对每一个线要素进行遍历时,若线要素起点坐标(Ax,Ay)和终点坐标(Bx,By)满足如下条件:
Ax<0且Bx>0或Bx<0且Ax>0或Ay<0且By>0或By<0且Ay>0;
则判定该线要素的起止点跨立该四叉树直角坐标系的X或Y轴,将这样的线要素定义为与该四叉树直角坐标系的原点相对应的线要素,如图4a-4c中所示三种类型线要素,其中,图4a为跨越两象限的线要素示意图,图4b为跨越三象限的线要素示意图,图4c为过原点的线要素示意图。确定出该四叉树直角坐标系的原点相对应的线要素后,针对这些线要素进行下一步的检查。
4)对于与该四叉树直角坐标系的原点相对应的线要素,将它与该四叉树直角坐标系对应的四个象限中的每个点要素和线要素采用拓扑检查算法进行错误检查,标记出拓扑错误要素。针对矢量点线管网数据来说,进行错误检查所采用的点规则有两种,线规则有三种,分别为:点要素必须被线要素覆盖;点要素必须被线要素的端点覆盖;线要素不能有悬挂点;线要素不能有伪结点;线要素不能相交。
如图5a-5e所示,其中,图5a为违反点规则中点要素必须被线要素覆盖规则的示例图,图5b为违反点规则中点要素必须被线要素的端点覆盖规则的示例图,图5c为违反线规则中线要素不能有悬挂点规则的示例图,图5d为违反线规则中线要素不能有伪结点规则的示例图,图5e为违反线规则中线要素不能相交规则的示例图。
参照图6,对于点要素,采用拓扑检查算法进行错误检查的方式主要是判断点要素是否位于线要素上或是否被线要素的端点覆盖(即点要素是否被线要素覆盖),若存在点要素没有位于线要素上或没有被线要素的端点覆盖的情况,则将该点要素标记为拓扑错误点要素,以该四叉树直角坐标系的原点相对应的任一线要素和该四叉树直角坐标系对应的四个象限中任一点要素之间的判断为例,具体判断方式如下:
①获取与该四叉树直角坐标系的原点相对应的任一线要素的起点坐标(Ax,Ay)和终点坐标(Bx,By),分别比较最小外接矩形内任一点要素坐标(Px,Py)与线要素起点、终点坐标,若对应的横纵坐标值差值均小于拓扑容差,则判定该点要素被线要素的端点覆盖,不可能为拓扑错误点要素,否则进行下一步判断;
②求取该线要素对应的最小外接矩形,若点要素位于线要素的最小外接矩形内,即满足min(Ax,Bx)<Px<max(Ax,Bx)且min(Ay,By)<Py<max(Ay,By),则进行下一步判断,否则说明该点要素可能为拓扑错误点要素,并先将该点要素标记为拓扑错误点要素;
③对于位于线要素的最小外接矩形内的点要素,计算线要素所在直线的斜率K,并求得该直线与纵轴的截距P;
P=Ay-K×Ax
计算斜率为K且过该点要素的直线与纵轴的截距p,获取两截距之差Int_d;
p=Py-K×Px
Int_d=p-p
若两截距之差Int_d小于拓扑容差,则判定点要素位于该线要素上,否则先将该点要素标记为拓扑错误点要素;具体判断原理图参照图7,其中A、B分别为线要素的起点和终点,C为点要素,P为线要素所在直线与纵轴的截距,其斜率记为K,p为斜率为K且过该点要素的直线与纵轴的截距。设置的拓扑容差能够确认由于数据采集误差原因造成的拓扑不关联点线数据之间的拓扑关联关系,用于避免坐标精度产生位置误差导致的误判情况,即导致原本位于线要素上或被线要素端点覆盖的点要素的位置被误判为位于线要素之外;在拓扑容差范围内的所有点均可移动,本实施例中设置的拓扑容差为基础数据中的点要素和线要素坐标的精度的10倍,即0.001米,具体如图8所示。
参照图9,对于线要素,采用拓扑检查算法进行错误检查的方式主要是判断线要素是否相交或存在悬挂点或伪结点,若存在两个线要素相交或存在悬挂点或伪结点,则将这两个线要素标记为拓扑错误线要素;以该四叉树直角坐标系的原点相对应的任一线要素和该四叉树直角坐标系对应的四个象限中其余的任一线要素之间的判断为例,具体判断方式如下:
i.根据快速排斥实验,获取线要素1的起点坐标(A1x,A1y)、终点坐标(B1x,B1y)和线要素2的起点坐标(A2x,A2y)、终点坐标(B2x,B2y),计算线要素坐标的最大值、最小值求取最小外接矩形。若坐标之间的关系满足如下条件,说明两个线要素的最小外接矩形不存在重叠区域,则判定两个线要素可能无拓扑错误或存在悬挂点;
max(A1x,B1x)<px<min(A2x,B2x)或
max(A2x,B2x)<Px<min(A1x,B1x)或
max(A1y,B1y)<Px<min(A2y,B2y)或
max(A2y,B2y)<Px<min(A1y,B1y)
因此继续判断两线要素的起点、终点坐标之间的距离,若两线要素的起点、终点中任意两点坐标之间的距离大于拓扑容差,说明这两个线要素之间本身不存在拓扑关系,则判定所述两个线要素无拓扑错误;若两线要素的起点、终点中任意两点坐标之间的距离小于拓扑容差,则说明两个线要素之间应当存在拓扑关系,继续判断两线要素中是否存在其中一个线要素的起点与另一线要素的终点坐标对应相等的情况,若存在,则判定两个线要素无拓扑错误,若不存在,则说明这两个线要素存在悬挂点,将这两个该线要素标记为拓扑错误线要素;
否则如图10所示,两个线要素的最小外接矩形存在重叠区域,进行下一步判断。
ii.根据跨立实验,向量的叉积可以用来判断两个向量之间的位置关系。使用如下公式计算两个线要素中任一线要素分别与该线要素对应的两个端点向量的叉乘的值Cross_mult(即叉积),该线要素也以向量的形式参与计算;
Cross_mult=(B1x-A1x)×(A2y-A1y)-(A2x-A1x)×(B1y-A1y)
通过比较Cross_mult与零的大小,能够求得线要素的端点与另一线要素的位置关系,例如图11所示,点P在线要素AB的下方,此时叉乘所得值小于0。根据线要素两个端点与另一线要素的位置关系,能够得到两个线要素的位置关系,判断线要素是否相交或存在悬挂点或伪结点;若叉乘的值均为正或均为负,则说明其中一个线要素的两个端点均位于另一线要素的同一侧,也即这两个线要素并不相交,因此判定两个线要素无拓扑错误,否则说明两个线要素相交或存在伪结点,则将这两个线要素均标记为拓扑错误线要素。这里提到的与线要素对应的两个端点向量指的是以该线要素的起点为起点,以另一线要素的两个端点为终点分别构成的向量,以图12a为例,与线要素AB对应的两个端点向量即为AO和AP,与线要素OP对应的两个端点向量则是OA和OB。
以线要素AB及线要素OP为例,错误线要素如表4所示:
表4错误线要素类型
由于线要素相交不可能存在于单层管线的拓扑关系中,因此线要素相交则被判定为存在拓扑错误,但在其他实施例中,检查对象可能为双层管线,因此线要素相交或存在伪节点的情况是否能够被判定为存在拓扑错误需要针对管线具体情况进行具体研究来确定。
5)以四个象限中每个象限的中心为原点,建立新的四叉树直角坐标系,每个新的四叉树直角坐标系将对应的象限划分为新的四个象限,接下来按照划分出的新的四个象限,重复步骤3)-5),直到四叉树象限内至多包含单个线要素为止,完成矢量数据拓扑关系检查,将此时被标记的拓扑错误要素作为最终的拓扑错误要素结果。
参照图13,分别以初次建立的四叉树直角坐标系划分出的四个象限SW、NW、SE、NE的中心为新的原点,再次进行建立新的四叉树直角坐标系,并划分新的四个象限;重复上述2)-5)的四叉树划分以及相应的拓扑检查步骤,不断建立四叉树直角坐标系,检查其拓扑关系,标记出拓扑错误要素后继续划分出更小的象限区域,直到最终划分出的象限内至多包含单个线要素为止。
需要注意的是,在重复划分、检查的过程中,对线要素采用拓扑检查算法进行错误检查的方式主要是判断线要素是否相交或存在悬挂点或伪结点,由于无论是两个完全不相干的线要素还是两个具有拓扑关系的线要素,均不可能相交或存在悬挂点或伪结点,因此若判定出两个线要素相交或存在悬挂点或伪结点,则对应的两个线要素必然出现错误,因此只要被标记为拓扑错误线要素,就无需进行更改,能够直接作为完成矢量数据拓扑关系检查时最终的拓扑错误线要素。
然而,对点要素采用拓扑检查算法进行错误检查的方式主要是判断点要素是否位于线要素上或是否被线要素的端点覆盖,但是由于每次进行拓扑检查时检查的是当前四叉树直角坐标系的原点相对应的其中一个线要素与四个象限内各个点要素之间的关系,因此每次进行拓扑检查后被标记为拓扑错误点要素的点要素存在两种情况,其一是该点要素本应与线要素之间具备拓扑关系,即该点要素本应位于线要素上或被线要素的端点覆盖,则此时该点要素为拓扑错误点要素的判定是准确的,但第二种情况是该点要素本来就与线要素没有拓扑关系,即点要素本就没有位于线要素上或不被线要素的端点覆盖,此时的判定就不准确。为避免这种情况导致的误判,在每次进行拓扑检查时,只要之前被标记为拓扑错误点要素的点要素在此次检查中并未被判定为拓扑错误点要素,则将之前的标记取消,将该点要素重新标记为拓扑正确点要素,后续将该点要素作为拓扑正确点要素进行处理;这样即可避免上述的第二种情况,相当于先将点要素初步标记为可能存在拓扑错误的点,加入拓扑错误点要素的合集,只要在后续重复划分、检查时,其中一次检查中发现该点要素存在位于某个线要素上或被某个线要素的端点覆盖的情况,则说明之前对该点要素的标记属于第二种情况,且该点要素实际上对于与其具有拓扑关系的线要素来说并非拓扑错误点要素,因此将该点要素标记为拓扑正确点要素,从拓扑错误点要素的合集中彻底剔除。并且,对于已经确定并进行相应标记了的拓扑正确点要素,后续直至完成矢量数据拓扑关系检查过程也无需再对这类拓扑正确点要素进行拓扑检查,避免再次出现第二种情况的同时减少了检查的数据量。经过这样的剔除判断,当完成矢量数据拓扑关系检查时,剩余的仍被标记为拓扑错误点要素的点要素即可作为最终的拓扑错误点要素结果。
本发明的矢量数据拓扑关系检查方法能够有效减少所要检查的数据量,降低检查过程的复杂程度,因此将本发明的矢量数据拓扑关系检查方法作为程序运行时能够应用于B/S架构的WebGIS系统,并且在多用户同时进行拓扑关系检查的情况下保持计算速度以及服务器稳定。
比较例:
本比较例通过程序运行的方式,比较本发明的矢量数据拓扑关系检查方法与现有技术中的拓扑关系检查算法之间的差异。
本比较例中,待检查对象的基础数据为管线、阀门的ArcGIS的ESRI-JSON标准Json文件格式数据。原始文件中包含geometryType(几何类型)、fields(字段概要)、spatialReference(空间参考)等基本信息,为之后的拓扑检查提供基础。features(要素)中包含各阀门点的投影坐标、点位ID以及各管线的起止点的投影坐标、线ID、线长、压力等属性。程序运行环境如表5所示。
表5程序运行环境
算法运行计时器采用console.time()和console.timeEnd()函数,分别控制计时器的开始和结束,用于测试javascript脚本程序执行所消耗的时间,当结束计时就会将执行时长打印显示在控制台。本发明的拓扑关系检查结果在控制台的显示如图14所示,其中Array数组中存储拓扑错误的点要素索引号,Object对象中存储不同错误类型的线要素索引号。
本发明的矢量数据拓扑关系检查方法和现有技术中各种拓扑检查算法的执行结果显示和比较如表6所示,其中的BTCA(Browser side topology checking algorithm)对应的是不进行四叉树索引,直接针对整体拓扑结构进行检查的检查结果,BQTCA(Browserside quadtree topology checking algorithm)对应的是本发明的矢量数据拓扑关系检查方法的检查结果,Turf库是JavaScript的模块化的GIS引擎,包含的传统空间操作、用于创建GeoJSON格式数据的辅助函数以及数据分类和统计工具,可以实现在浏览器使用其提供的模块进行GeoJSON格式数据处理;Jsts库是符合OGC标准的包含空间拓扑功能的JavaScript类库,由Java包JTS源码转换并保留原有API,可用于处理和分析简单的空间几何,其IO模块支持与WKT、GeoJSON以及OpenLayers 3+数据互转。由于Turf和Jsts库在拓扑关系检查时无法进行容差设置,在算法对比时将拓扑容差设置为0。
表6拓扑检查算法的执行结果比较
根据表6可以看出,本发明基于四叉树索引思想进行拓扑检查算法优化后的拓扑关系检查方法,在保证了检查结果准确性的基础上,其程序执行所消耗的时间相较于现有技术中的拓扑检查算法有了明显的缩短,其计算效率在114个点要素,1881个线要素情况下比公用库turf库,jsts库分别快约13倍,40倍;在912个点要素,15048个线要素情况下比公用库turf库,jsts库分别快约65倍,190倍,提高了浏览器端大数据量矢量管线数据拓扑关系检查效率。
根据算法速度对比结果可知:在运行结果准确度方面,几种拓扑关系检查算法均具有较高的准确度。在满足个性化需求方面,BQTCA能够自由设置容差,明显优于Turf和Jsts拓扑关系检查算法。且BQTCA对于大数据量矢量数据拓扑关系检查效率有了明显提升,具体总结如下:
(1)当数据量较小时,其程序执行所消耗的时间相较于优化前提升了18倍左右,相较于性能较好的Turf拓扑关系检查算法提升了12倍左右,相较于Jsts拓扑关系检查算法提升了39倍左右。
(2)当数据量较大时,其程序执行所消耗的时间相较于优化前提升了71倍左右,相较于性能较好的Turf拓扑关系检查算法提升了65倍左右,相较于Jsts拓扑关系检查算法提升了190倍左右。
由此可见,数据量越大,本发明的BQTCA拓扑检查算法提升效率越明显,甚至数据量大到当Turf、Jsts无法计算崩溃时,BQTCA依然能够完成检查计算。
本发明的矢量数据拓扑关系检查方法通过四叉树对待检查对象的点要素和线要素进行空间划分,基于四叉树空间索引的构思,在每次划分时,针对性地检查特定线要素与四叉树限定区域内的点线要素之间是否存在拓扑错误,直至最终细化至最小象限单元,即象限内至多包含单个线要素为止,完成矢量数据拓扑关系检查,无需将每个线要素对应全部点线要素进行大规模全部遍历的拓扑检查过程,避免了全部遍历时所面临的大量数据以及计算过程,因此能够提高检查速度;并且通过容差设置,能够确认由于数据采集误差原因造成的拓扑不关联点线数据之间的拓扑关联关系,提高拓扑检查的准确性。经过实验验证,本发明的矢量数据拓扑关系检查方法相较于现有的拓扑检查算法,所需的检查时间大大缩短,计算效率得到了显著的提高。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细地说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (7)
1.一种矢量数据拓扑关系检查方法,其特征在于,步骤如下:
1)载入待检查对象的基础数据中的点要素和线要素,同时,根据基础数据的投影坐标进行数据的预处理,获取所有基础数据的最小外接矩形;
2)建立以最小外接矩形的中心为原点的四叉树直角坐标系,通过四叉树直角坐标系的坐标轴将最小外接矩形划分为四个象限,并对所有点要素和线要素的直角坐标系进行转换,将点要素和线要素的坐标转换到四叉树直角坐标系中;
3)对四个象限中的每一个线要素进行遍历,根据线要素的起点坐标和终点坐标,判定线要素是否与该四叉树直角坐标系的原点相对应;若线要素的起点坐标和终点坐标不在同一象限,则判定线要素与该四叉树直角坐标系的原点相对应;
4)对于与该四叉树直角坐标系的原点相对应的线要素,将它与该四叉树直角坐标系对应的四个象限中的每个点要素和线要素采用拓扑检查算法进行错误检查,对拓扑错误要素进行标记;
5)以四个象限中每个象限的中心为原点,建立新的四叉树直角坐标系,每个新的四叉树直角坐标系将对应的象限划分为新的四个象限,接下来按照划分出的新的四个象限,重复步骤3)-5),直到四叉树象限内至多包含单个线要素为止,完成矢量数据拓扑关系检查,将此时被标记的拓扑错误要素作为最终的拓扑错误要素结果。
2.根据权利要求1所述的矢量数据拓扑关系检查方法,其特征在于,步骤2)中,所述最小外接矩形是按照所有原始数据的最小外接矩形的中心,将该最小外接矩形向外扩大设定距离得到的图形。
3.根据权利要求1-2任一项所述的矢量数据拓扑关系检查方法,其特征在于,步骤4)中,采用拓扑检查算法进行错误检查方式如下:
判断点要素是否位于线要素上或是否被线要素的端点覆盖,若存在点要素没有位于线要素上或没有被线要素的端点覆盖的情况,则将该点要素标记为拓扑错误点要素;若点要素位于线要素上或被线要素的端点覆盖,则将该点要素标记为拓扑正确点要素,且后续不再对该点要素进行错误检查,在这种情况下如果该点要素已经被标记为拓扑错误点要素,则取消该标记,将该点要素重新标记为拓扑正确点要素,且后续不再对该点要素进行错误检查;
判断线要素是否相交或存在悬挂点或伪结点,若存在两个线要素相交或存在悬挂点或伪结点,则将这两个线要素标记为拓扑错误线要素。
4.根据权利要求3所述的矢量数据拓扑关系检查方法,其特征在于,所述判断点要素是否位于线要素上或是否被线要素的端点覆盖的判断条件为:
获取线要素起点坐标和终点坐标,分别比较点要素坐标与线要素起点、终点坐标,若对应的横纵坐标值差值均小于拓扑容差,则判定点要素被线要素的端点覆盖,否则进行下一步判断;
求取线要素对应的最小外接矩形,若点要素位于线要素的最小外接矩形内,则进行下一步判断,否则判定点要素没有位于线要素上;
对于位于线要素的最小外接矩形内的点要素,计算线要素所在直线的斜率K,并求得该直线与纵轴的截距,计算斜率为K且过该点要素的直线与纵轴的截距,获取两截距之差,若两截距之差小于拓扑容差,则判定点要素位于该线要素上,否则判定点要素没有位于线要素上。
5.根据权利要求3所述的矢量数据拓扑关系检查方法,其特征在于,所述判断线要素是否相交或存在悬挂点或伪结点的判断条件为:
根据两个线要素的起点、终点坐标,获取两个线要素的最小外接矩形;若两个线要素的最小外接矩形不存在重叠区域,则继续判断两线要素的起点、终点坐标之间的距离,若两线要素的起点、终点中任意两点坐标之间的距离大于拓扑容差,则判定所述两个线要素无拓扑错误;若两线要素的起点、终点中任意两点坐标之间的距离小于拓扑容差,则继续判断两线要素中是否存在其中一个线要素的起点与另一线要素的终点坐标对应相等的情况,若存在,则判定两个线要素无拓扑错误,若不存在,则将这两个该线要素标记为拓扑错误线要素;若判定两个线要素的最小外接矩形存在重叠区域,进行下一步判断;
计算两个线要素中任一线要素分别与该线要素对应的两个端点向量的叉乘的值,若叉乘的值均为正或均为负,则判定两个线要素无拓扑错误,否则将这两个线要素标记为拓扑错误线要素;所述与线要素对应的两个端点向量指的是以该线要素的起点为起点,以另一线要素的两个端点为终点分别构成的向量。
6.根据权利要求4或5所述的矢量数据拓扑关系检查方法,其特征在于,所述拓扑容差为基础数据中的点要素和线要素坐标的精度的10倍。
7.根据权利要求1-2任一项所述的矢量数据拓扑关系检查方法,其特征在于,所述四个象限均为矩形。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211080369.9A CN115422196B (zh) | 2022-09-05 | 2022-09-05 | 一种矢量数据拓扑关系检查方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211080369.9A CN115422196B (zh) | 2022-09-05 | 2022-09-05 | 一种矢量数据拓扑关系检查方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115422196A true CN115422196A (zh) | 2022-12-02 |
CN115422196B CN115422196B (zh) | 2023-08-18 |
Family
ID=84202037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211080369.9A Active CN115422196B (zh) | 2022-09-05 | 2022-09-05 | 一种矢量数据拓扑关系检查方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115422196B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151021A (zh) * | 2023-10-31 | 2023-12-01 | 北京智芯仿真科技有限公司 | 基于覆铜形状拓扑结构诊断集成电路版图设计缺陷的方法 |
WO2024207867A1 (zh) * | 2023-04-06 | 2024-10-10 | 宁波东海集团有限公司 | 一种供水管线拓扑验证方法、系统、存储介质及智能终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937078A (zh) * | 2009-06-30 | 2011-01-05 | 深圳市气象局 | 基于边界识别追踪技术的雷暴云团的临近预报方法和系统 |
CN108133044A (zh) * | 2018-01-12 | 2018-06-08 | 适普远景遥感信息技术(北京)有限公司 | 基于属性分离的空间大数据三维可视化方法及平台 |
CN111666361A (zh) * | 2019-03-08 | 2020-09-15 | 中南大学 | 一种存储多边形包含关系的四叉树构建方法及索引方法 |
CN114175099A (zh) * | 2019-08-07 | 2022-03-11 | 湾流航空航天公司 | 使用基于距离的修剪的四叉树地形数据压缩 |
-
2022
- 2022-09-05 CN CN202211080369.9A patent/CN115422196B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937078A (zh) * | 2009-06-30 | 2011-01-05 | 深圳市气象局 | 基于边界识别追踪技术的雷暴云团的临近预报方法和系统 |
CN108133044A (zh) * | 2018-01-12 | 2018-06-08 | 适普远景遥感信息技术(北京)有限公司 | 基于属性分离的空间大数据三维可视化方法及平台 |
CN111666361A (zh) * | 2019-03-08 | 2020-09-15 | 中南大学 | 一种存储多边形包含关系的四叉树构建方法及索引方法 |
CN114175099A (zh) * | 2019-08-07 | 2022-03-11 | 湾流航空航天公司 | 使用基于距离的修剪的四叉树地形数据压缩 |
Non-Patent Citations (1)
Title |
---|
邵世维: "基于几何特征的多尺度矢量面状实体匹配方法研究与应用", 《优秀博士学位论文辑 基础科学》, pages 1 - 4 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024207867A1 (zh) * | 2023-04-06 | 2024-10-10 | 宁波东海集团有限公司 | 一种供水管线拓扑验证方法、系统、存储介质及智能终端 |
CN117151021A (zh) * | 2023-10-31 | 2023-12-01 | 北京智芯仿真科技有限公司 | 基于覆铜形状拓扑结构诊断集成电路版图设计缺陷的方法 |
CN117151021B (zh) * | 2023-10-31 | 2023-12-29 | 北京智芯仿真科技有限公司 | 基于覆铜形状拓扑结构诊断集成电路版图设计缺陷的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115422196B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115422196B (zh) | 一种矢量数据拓扑关系检查方法 | |
CN111666924B (zh) | 一种平面几何自动解题方法及系统 | |
US20120320087A1 (en) | System and Methods for Parallelizing Polygon Overlay Computation in Multiprocessing Environment | |
CN118012967A (zh) | 一种桥类地理信息数据处理方法和装置 | |
CN111462521B (zh) | 停车场地图确定方法、装置及设备、存储介质 | |
CN111428811B (zh) | 一种单环多边形自相交模式识别及处理方法 | |
CN113806457B (zh) | 一种经纬度点区域归属判别方法及系统 | |
CN112966330A (zh) | 交叉墙体的墙面生成方法、计算机设备及可读存储介质 | |
CN116222539A (zh) | 高精度地图数据差异化更新方法及系统 | |
CN115270500A (zh) | 一种布尔求差运算方法、装置及电子设备 | |
CN113742829B (zh) | 一种桥梁结构任意截面读取处理和截面特性计算方法 | |
CN109341704B (zh) | 一种地图精度确定方法及装置 | |
CN114283148A (zh) | 一种道路元素提取方法、装置、存储介质及电子设备 | |
CN103837135A (zh) | 工件检测方法及其系统 | |
CN111291276A (zh) | 一种基于局部方向中心性度量的聚类方法 | |
CN111220943A (zh) | 定位方法、定位系统、计算机可读存储介质及车辆 | |
CN113867371B (zh) | 路径规划方法和电子设备 | |
CN102254093A (zh) | 基于泰森多边形的连通域统计相关算法 | |
CN111522896A (zh) | 确定平面多边形凹凸点的方法及系统 | |
Wang et al. | ASQT: An Efficient Index for Queries on Compressed Trajectories | |
CN118569003A (zh) | 一种通用的参数曲线或曲面自交计算方法、设备及存储介质 | |
CN111400891B (zh) | 管道巡检点偏差程度获取方法、装置、设备及存储介质 | |
CN117115259A (zh) | 目标所在地图元素的确定方法、装置及电子设备 | |
CN113407570A (zh) | 基于容差值的线段空间关系检测算法及设备 | |
Li et al. | A novel optimization approach to topology checking of pipeline vector data in browser side |
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 |