一种空间对象形态切割的方法技术

技术编号:26305656 阅读:22 留言:0更新日期:2020-11-10 20:03
本发明专利技术涉及一种空间对象形态切割的方法,涉及空间图形处理技术领域。由于现有技术的矢量图分割算法对于带有大量内洞且具有复杂外环线的多边形处理速度较慢,所以本发明专利技术改进的切割算法主要规避了带有大量内洞的复杂多边形的多次空间关系运算,使用mGeos的外包矩形和不相交的内洞创建出多边形,只将与切割线相交的内洞和外环进行操作,从而避免了大量空间操作,提升了算法效率。

【技术实现步骤摘要】
一种空间对象形态切割的方法
本专利技术涉及一种空间对象形态切割的方法,属于空间图形处理

技术介绍
切割要素是矢量图生产中经常用到的一种操作,面要素会由分割线分割出多个要素,要素的属性表也要复制原来要素的一份,都是矢量地图生产人员经常用到的要素编辑的操作,例如矢量地图根据行政区域划分进行切割。原生QGIS切割算法在处理带有大量内环(内洞)的复杂多边形时切割效率低下,且偶尔会出现崩溃的情况,原生算法在处理大量内洞时使用了大量的空间操作,导致算法效率低下。如图1所示的QGIS切割算法流程图,该方法首先得到mGeos(被切割的几何体)的boundary(包括外边界和内洞边界),即将二维的面降维成环线。然后将环线与割线进行GEOUnion操作,得到联合后的unionGeometry。再将得到的unionGeometry拓扑化成面,此时所有闭合的环线都会拓扑化成为一个面,mGeos的内洞也会拓扑化成为一个面,因此得到多个面,变量名为unionPolygons。再对unionPolygons进行遍历,将其中每个闭合环线形成的面即polygon分别与mGeos进行GEOSIntersection(相交或求交集)操作,得到对应的intersectGeometry,若ploygon为内洞或者切线在mGeos外部形成的冗余多边形(冗余面),得到的intersectGeometry为nullptr(为空),则认为是无效面并跳过;若intersectGeometry不为空,分别计算intersectGeometry和对应的ploygon的面积,若两者面积之比在[0.99,1.01]范围内,则证明这个面为有效面。最后将所有有效面导入到testedGeometried向量内,并对其进行一系列检测,若切割成功,则算法结束。该算法适用于小数据量,能够处理所有特殊切割的情况。但是,对于复杂数据(特别是DEM数据矢量化的复杂数据)每一个内洞都需要与mGeos进行intersection(相交)操作,导致时间复杂度上升过快,无法满足生产人员要求。
技术实现思路
本专利技术的目的是提供一种空间对象形态切割的方法,用以解决现有切割算法效率低下的问题。为实现上述目的,本专利技术的方案包括:本专利技术的一种空间对象形态切割的方法,包括如下步骤:1)得到被切割几何体的外环线和内环线;所述外环线为被切割几何体的最外层的一个或多个封闭轮廓线,所述内环线为处于外环线内部的一个或多个封闭轮廓线;2)找到所有与切割线相交的内环线,并与外环线构成第一图形;所述第一图形包括外环线和与切割线相交的内环线之间的区域;3)第一图形与切割线合并后拓扑化,得到多个面形成的图形,仅保留其中的有效面后得到仅由有效面形成的切割图形;每个闭合的线形成一个面,处于所述第一图形内的面为有效面;4)将不与切割线相交的内环线按照对应位置回填入所述切割图形中;5)输出切割图形。现有技术的矢量图切割算法对于带有大量内洞且具有复杂外环线的图形处理速度较慢,因此本专利技术的改进切割算法主要规避了带有大量内洞的复杂多边形的多次空间关系运算,仅对与切割线相交的内洞和外环进行操作,得到一个中间图形,未与切割线相交的内洞无需过多处理,直接与中间图形相交即可完成切割算法,避免了大量空间操作,提升了算法效率,降低了错误率。进一步的,步骤3)中,筛选有效面的方法为,对应获得所述切割图形中每个面中至少一个内点,若内点落入所述第一图形内,则该内点所在的面为有效面。通过内点与被切割几何体的位置关系判断面是否为非内洞、非冗余多边形的有效面,算法简单可靠易于实现。进一步的,步骤4)中,回填不与切割线相交的内环线的方法为,找出所有不与切割线相交的内环线,并与被切割几何体的外接矩形构成第二图形;在找出所有有效面后,根据所述外接矩形与所述外环线的位置关系,将第二图形与仅保留有效面的切割图形相交。使用mGeos的外包矩形和不相交的内洞创建出多边形,便于实现不与切割线相交的内环线与有效面的位置关联,算法简单准确。附图说明图1是现有技术的QGIS切割算法流程图;图2是本专利技术的空间对象形态切割方法流程图;图3(a)是被切割的几何体示意图1;图3(b)是被切割的几何体示意图2;图4是一个实例中的被切割的几何体示意图;图5(a)是实例中相交图形示意图;图5(b)是实例中非相交图形示意图;图6是实例中相交图形与切割线合并后拓扑化的示意图;图7是实例中有效多边形和非相交图形相交示意图。具体实施方式下面结合附图对本专利技术做进一步详细的说明。如图2所示的本专利技术的空间对象形态切割方法流程图,本专利技术的方法包括如下步骤:1):得到mGeos(被切割的几何体)的外环线和内环线(内洞Holes);举例来说,如图3(a)所示,被切割的几何体mGeos为区域①(三角形图形1区域内除去椭圆图形2形成的内洞②区域的剩余部分),两条虚线3为两条切割线,本步骤中得到外环线为图形1的边线和内环线为椭圆2的椭圆线。2):将内环线分为与切割线相交的内环线(intersectHoles)和与切割线不相交的内环线(nointersectHoles);图3(a)中所示的被切割的几何体仅有一个内环线,即与切割线相交的内环线椭圆2,没有不与切割线相交的内环线。3):与切割线不相交的内环线与mGeos的外接矩形创建一个图形boxWithHole,与切割线相交的内环线与外环线创建另一个图形ringWithHole;mGeos外接矩形可以为能容纳下被切割的几何体的最小矩形;以图3(a)和图3(b)中的mGeos为例时,因没有与切割线不相交的内环线,因此得到的图形ringWithHole依然为最初的被切割的几何体mGeos的区域①,图形boxWithHole为空。4):图形ringWithHole与切割线合并得到合并几何体unionGeometry,再将合并几何体unionGeometry进行拓扑化,得到多个面的图形MultiPloygon(每个面在图形中的位置基于图形ringWithHole沿用和保留);在拓扑化的时候,所有闭合的边都会形成一个面,因此以图3(a)和图3(b)中的mGeos为例,如图3(b)所示,MultiPloygon包括面a、b、c、d,面d为因切割线3而产生的冗余多边形。5):循环遍历MultiPloygon中每一个面,得到其中的一个面后,进而得到该面内的一点,判断该面中的内点是否在图形ringWithHole内;显然面b内的点落入图形ringWithHole中的内洞②中,因而未落入图形ringWithHole内;面d为切割线3在mGeos外围成的冗余多边形,因而也未落在图形ringWithHole内。6):如果内点不在图形ringWithHole内,则对应面无效;如果内点在多边形ringWithHole内,则对应面本文档来自技高网
...

【技术保护点】
1.一种空间对象形态切割的方法,其特征在于,包括如下步骤:/n1)得到被切割几何体的外环线和内环线;所述外环线为被切割几何体的最外层的一个或多个封闭轮廓线,所述内环线为处于外环线内部的一个或多个封闭轮廓线;/n2)找到所有与切割线相交的内环线,并与外环线构成第一图形;所述第一图形包括外环线和与切割线相交的内环线之间的区域;/n3)第一图形与切割线合并后拓扑化,得到多个面形成的图形,仅保留其中的有效面后得到仅由有效面形成的切割图形;每个闭合的线形成一个面,处于所述第一图形内的面为有效面;/n4)将不与切割线相交的内环线按照对应位置回填入所述切割图形中;/n5)输出切割图形。/n

【技术特征摘要】
1.一种空间对象形态切割的方法,其特征在于,包括如下步骤:
1)得到被切割几何体的外环线和内环线;所述外环线为被切割几何体的最外层的一个或多个封闭轮廓线,所述内环线为处于外环线内部的一个或多个封闭轮廓线;
2)找到所有与切割线相交的内环线,并与外环线构成第一图形;所述第一图形包括外环线和与切割线相交的内环线之间的区域;
3)第一图形与切割线合并后拓扑化,得到多个面形成的图形,仅保留其中的有效面后得到仅由有效面形成的切割图形;每个闭合的线形成一个面,处于所述第一图形内的面为有效面;
4)将不与切割线相交的内环线按照对应位置回填入所...

【专利技术属性】
技术研发人员:张亚军刘小春姚亮李坡
申请(专利权)人:苏州中科蓝迪软件技术有限公司
类型:发明
国别省市:江苏;32

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

1