一种基于两个凸多边形交集求解算法的地类图斑分析方法

文档序号:1891134 发布日期:2021-11-26 浏览:14次 >En<

阅读说明:本技术 一种基于两个凸多边形交集求解算法的地类图斑分析方法 (Land pattern spot analysis method based on intersection solving algorithm of two convex polygons ) 是由 徐恒 王兆亮 吴春争 曹佳 于 2021-08-20 设计创作,主要内容包括:本发明公开了一种基于两个凸多边形交集求解算法的地类图斑分析方法,涉及地类图斑分析技术领域。该地类分析方法通过界址点转换为图形方法或解析shp文件的方法,得到凸多边形,将凸多边形依次进行交集求解,获取所有凸多边形的共同交集,将得到的共同交集与数据库中的凸多边形进行叠加,获得与共同交集相交的地类图斑和线状地物信息,将地类图斑和线状地物信息进行分析,得到不同地类下的图斑面积。本发明的地类图斑分析方法方法简单、空间和时间复杂度低,只需要与数据库建立一次连接即可实现地类图斑分析,运行速度快,鲁棒性较高。(The invention discloses a method for analyzing a geographical map spot based on an intersection solving algorithm of two convex polygons, and relates to the technical field of geographical map spot analysis. The land type analysis method obtains convex polygons through a method of converting boundary points into a graph method or analyzing an shp file, intersection solving is carried out on the convex polygons in sequence, common intersection of all the convex polygons is obtained, the obtained common intersection is overlapped with the convex polygons in a database, land type map spots and linear ground object information which are intersected with the common intersection are obtained, the land type map spots and the linear ground object information are analyzed, and the area of the map spots under different land types is obtained. The method for analyzing the geographical map spots is simple, low in space and time complexity, capable of realizing the geographical map spot analysis only by establishing one-time connection with the database, high in operation speed and high in robustness.)

一种基于两个凸多边形交集求解算法的地类图斑分析方法

技术领域

本发明涉及地类图斑分析技术领域,具体地涉及一种基于两个凸多边形交集求解算法的地类图斑分析方法。

背景技术

目前面对包含多个多边形的地类图斑叠加分析,往往需要通过轮询多个凸多边形交集求解算法的服务,重复建立和释放数据库连接,获取地类图斑以及线状地物结果集,再分析得出不同地类下所占图斑面积。通过反复轮询处理,造成不必要的性能开销和浪费,导致重复获取数据库链接效率变慢,且对于复杂图形数据的计算会消耗较多瞬时性能。

发明内容

针对现有技术中存在的问题,本发明提供了一种基于两个凸多边形交集求解算法的地类图斑分析方法。该地类图斑分析方法基于两个凸多边形交集求解算法进行相交计算,得出不同地类下所占图斑面积的地类分析。

为了实现上述目的,本发明采用的技术方案如下:一种基于两个凸多边形交集求解算法的地类图斑分析方法,具体包括如下步骤:

(1)通过界址点转换为图形方法或解析shp文件的方法,得到凸多边形;

(2)将凸多边形依次进行交集求解,获取所有凸多边形的共同交集;包括如下子步骤:

(2.1)根据边的关系来判断两个凸多边形的位置关系,两个凸多边形的位置关系包括:包含、分离、相交、相切;

(2.2)当两个凸多边形属于相交或包含关系时,求取交集;

(2.3)重复根据步骤(2.1)-(2.2)的方法求取交集与下一个凸多边形的交集,直至得到所有凸多边形的共同交集;

(3)将得到的共同交集与数据库中的凸多边形进行叠加,获得与共同交集相交的地类图斑和线状地物信息;

(4)将地类图斑和线状地物信息进行分析,得到不同地类下的图斑面积。

进一步地,通过界址点转换为图形的方法具体为:根据点序号、点坐标、点所在图形号、环号依序连点形成凸多边形。

进一步地,解析shp文件的方法具体为:从shp文件中的shape字段或者geom字段获取图形数据,得到凸多边形。

进一步地,步骤(2.1)具体为:将两个凸多边形A和B的所有边求交点个数,若至少有一个交点,且交点数为有限个,A凸多边形与B凸多边形相交;若有无数个交点,A凸多边形与B凸多边形相切;若交点数量为0,A凸多边形与B凸多边形不相交,判断A凸多边形上的所有顶点是否在B凸多边形内,若A凸多边形上的所有顶点均在B凸多边形内,则B凸多边形包含A凸多边形;否则,判断B凸多边形上的所有顶点是否在A凸多边形内,若B凸多边形上的所有顶点均在A凸多边形内,则A凸多边形包含B凸多边形,否则,A凸多边形与B凸多边形分离。

进一步地,步骤(2.2)中,当两个凸多边形为包含关系时,其交集为被包含的凸多边形。

进一步地,步骤(2.2)中,当两个凸多边形A和B相交时,交集的求取过程具体为:

(a)将A凸多边形和B凸多边形中的顶点坐标分别按照逆时针顺序存储为顶点集A(A1,…Ai,…An)和B(B1,…Bi,…Bm),其中,n为A凸多边形的顶点个数,m为B凸多边形的顶点个数;

(b)在顶点集A(A1,…Ai,…An)的末尾添加A1,得到初始化顶点集A′(A1,…Ai,…An,A1),在顶点集B(B1,…Bi,…Bm)的末尾添加B1,得到初始化顶点集B′(B1,…Bi,…,B1);

(c)对任意第i个顶点Ai,判断顶点Ai与B凸多边形的关系,如果Ai在B凸多边形的内部,将顶点Ai保存于集合AB中,并判断带有顶点Ai的边与B凸多边形是否有交点,如果带有顶点Ai的边与B凸多边形有交点,将交点保存于集合AB中;

(d)对任意第i个顶点Bi,判断顶点Bi与A凸多边形的关系,如果Bi在A凸多边形的内部,将顶点Bi保存与集合BA中,并判断带有顶点Bi的边与A凸多边形是否有交点,如果带有顶点Bi的边与A凸多边形有交点,将交点保存于结合BA中;

(e)通过向前或向后循环集合BA直到集合BA的首元素与集合AB的首元素一致,否则执行步骤(h);

(f)通过向前或向后循环集合AB,直到集合AB的末尾元素和集合BA的首元素一致;

(g)删除集合BA中的首元素,将剩余元素向前移一位,判断集合BA中新的首元素是否在集合AB中,如果集合BA中新的首元素不在集合AB中,则将该元素插入到集合AB的末尾,再次执行步骤(g);如果集合BA中新的首元素在集合AB中,则执行步骤(f);直至集合BA为空集,此时结合AB为两个凸多边形的顶点序列交集;

(h)通过向前或向后循环集合AB直至集合AB的首元素与集合BA的首元素一致;

(i)通过向前或向后循环集合BA,直到集合BA的末尾元素和集合AB的首元素一致;

(j)删除集合AB中的首元素,将剩余元素向前移一位,判断集合AB中新的首元素是否在集合BA中,如果集合AB中新的首元素不在集合BA中,则将该元素插入到集合BA的末尾,再次执行步骤(j);如果集合AB中新的首元素在集合BA中,则执行步骤(i);直至集合AB为空集,此时结合BA为两个凸多边形的顶点序列交集。

进一步地,步骤(4)具体包括如下子步骤:

(4.1)根据地类图斑的地类编码将相交的图形进行分组,将同一组的相交图形的面积进行求和,通过字典表查询所述地类图斑的地类编码对应的地类名称和图幅号;

(4.2)轮询线状地物的结果集,将线状地物的宽度和长度字段相乘获得面积放入面积结果集,再根据地类编码字段将面积结果集进行分组,将同一组面积字段进行求和;通过字典表查询所述线状地物的地类编码对应的地类名称;

(4.3)对比地类图斑和线状地物,将相同地类名称的地类图斑中的相交图形的面积扣除线状地物中相交图形的面积,得出不同地类下的图斑面积。

与现有技术相比,本发明具有如下有益效果:本发明基于两个凸多边形交集求解算法的地类图斑分析方法将凸多边形依次进行交集求解,获取所有凸多边形的共同交集,再与数据库中的凸多边形进行叠加,获得与共同交集相交的地类图斑和线状地物信息,方法简单、空间和时间复杂度低,只需要与数据库建立一次连接即可实现地类图斑分析,运行速度快,鲁棒性较高。

附图说明

图1为本发明基于两个凸多边形交集求解算法的地类图斑分析方法的流程图;

图2为筛选顶点构建集合AB流程图。

具体实施方式

下面结合附图对本发明的技术方案作进一步地解释说明。

如图1为本发明基于两个凸多边形交集求解算法的地类图斑分析方法的流程图,该地类图斑分析方法具体包括如下步骤:

(1)通过界址点转换为图形方法或解析shp文件的方法,得到凸多边形。本发明中通过界址点转换为图形的方法具体为:根据点序号、点坐标、点所在图形号、环号依序连点形成凸多边形。本发明中通过解析shp文件的方法具体为:从shp文件中的shape字段或者geom字段获取图形数据,得到凸多边形。

(2)现有技术中对多个凸多边形进行叠加分析时,依次将每个凸多边形分别与数据库中数据进行叠加分析,重复进行数据库连接的建立和释放,造成不必要的性能开销和浪费。而本发明中提出将凸多边形依次进行交集求解,获取所有凸多边形的共同交集后,再将共同交集与数据库中数据进行叠加分析,来降低运算复杂度、减小浪费。具体包括如下子步骤:

(2.1)根据边的关系来判断两个凸多边形的位置关系,两个凸多边形的位置关系包括:包含、分离、相交、相切;具体为:将两个凸多边形A和B的所有边求交点个数,若至少有一个交点,且交点数为有限个,A凸多边形与B凸多边形相交;若有无数个交点,A凸多边形与B凸多边形相切;若交点数量为0,A凸多边形与B凸多边形不相交,判断A凸多边形上的所有顶点是否在B凸多边形内,若A凸多边形上的所有顶点均在B凸多边形内,则B凸多边形包含A凸多边形;否则,判断B凸多边形上的所有顶点是否在A凸多边形内,若B凸多边形上的所有顶点均在A凸多边形内,则A凸多边形包含B凸多边形,否则,A凸多边形与B凸多边形分离。

(2.2)当两个凸多边形属于相交或包含关系时,求取交集;当两个凸多边形为包含关系时,其交集为被包含的凸多边形。当两个凸多边形A和B相交时,将两个凸多边形的所有顶点按照顶点与另一个多边形的位置关系进行筛选,将筛选出的顶点和两个凸多边形的交点,按照逆时针的顺序合并,即可得到两个凸多边形的交集顶点序列,以去除不参与下一步求交集的点,从而简化运算过程。本发明中交集的求取过程具体为:

(a)将A凸多边形和B凸多边形中的顶点坐标分别按照逆时针顺序存储为顶点集A(A1,…Ai,…An)和B(B1,…Bi,…Bm),其中,n为A凸多边形的顶点个数,m为B凸多边形的顶点个数;首先对凸多边形顶点进行筛选,判断其顶点与另一个凸多边形的位置关系,如果该顶点为另一个凸多边形的内部点,则存储待用,具体地:

(b)为了不漏掉凸多边形上的最后一条边,在顶点集A(A1,…Ai,…An)的末尾添加A1,得到初始化顶点集A′(A1,…Ai,…An,A1),在顶点集B(B1,…Bi,…Bm)的末尾添加B1,得到初始化顶点集B′(B1,…Bi,…,B1);

(c)对任意第i个顶点Ai,判断顶点Ai与B凸多边形的关系,如果Ai在B凸多边形的内部,将顶点Ai保存于集合AB中,并判断带有顶点Ai的边与B凸多边形是否有交点,如果带有顶点Ai的边与B凸多边形有交点,将交点保存于集合AB中;

(d)对任意第i个顶点Bi,判断顶点Bi与A凸多边形的关系,如果Bi在A凸多边形的内部,将顶点Bi保存与集合BA中,并判断带有顶点Bi的边与A凸多边形是否有交点,如果带有顶点Bi的边与A凸多边形有交点,将交点保存于结合BA中;

(e)如图2为筛选顶点构建结合AB的流程图,通过向前或向后循环集合BA直到集合BA的首元素与集合AB的首元素一致,来寻找集合AB和集合BA中共同的首元素,便于合并交集顶点序列,否则执行步骤(h);

(f)通过向前或向后循环集合AB,直到集合AB的末尾元素和集合BA的首元素一致,便于合并集合AB和集合BA时删除重复元素。

(g)删除集合BA中的首元素,将剩余元素向前移一位,判断集合BA中新的首元素是否在集合AB中,如果集合BA中新的首元素不在集合AB中,则将该元素插入到集合AB的末尾,再次执行步骤(g);如果集合BA中新的首元素在集合AB中,则执行步骤(f);直至集合BA为空集,此时结合AB为两个凸多边形的顶点序列交集,在保证顶点顺序的情况下得到顶点序列交集。

(h)通过向前或向后循环集合AB直至集合AB的首元素与集合BA的首元素一致;

(i)通过向前或向后循环集合BA,直到集合BA的末尾元素和集合AB的首元素一致;

(j)删除集合AB中的首元素,将剩余元素向前移一位,判断集合AB中新的首元素是否在集合BA中,如果集合AB中新的首元素不在集合BA中,则将该元素插入到集合BA的末尾,再次执行步骤(j);如果集合AB中新的首元素在集合BA中,则执行步骤(i);直至集合AB为空集,此时结合BA为两个凸多边形的顶点序列交集。

(2.3)重复根据步骤(2.1)-(2.2)的方法求取交集与下一个凸多边形的交集,直至得到所有凸多边形的共同交集,只需要与数据库建立一次连接即可实现地类图斑分析,运行速度快,鲁棒性较高。

(3)将得到的共同交集与数据库中的凸多边形进行叠加,获得与共同交集相交的地类图斑和线状地物信息;

(4)将地类图斑和线状地物信息进行分析,得到不同地类下的图斑面积。步骤(4)具体包括如下子步骤:

(4.1)根据地类图斑的地类编码将相交的图形进行分组,将同一组的相交图形的面积进行求和,通过字典表查询所述地类图斑的地类编码对应的地类名称和图幅号;

(4.2)轮询线状地物的结果集,将线状地物的宽度和长度字段相乘获得面积放入面积结果集,再根据地类编码字段将面积结果集进行分组,将同一组面积字段进行求和;通过字典表查询所述线状地物的地类编码对应的地类名称;

(4.3)对比地类图斑和线状地物,将相同地类名称的地类图斑中的相交图形的面积扣除线状地物中相交图形的面积,得出不同地类下的图斑面积。

本发明基于两个凸多边形交集求解算法的地类图斑分析方法与现有的轮询遍历数据库方法相比,在输入10个凸多边形的情况下,运算速度提高了50%左右,鲁邦性提升10%左右,因此,本发明的方法简单、空间和时间复杂度低、运算速度快、鲁棒性更高。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施方式,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于激光定位的塔脚节点姿态确定方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!