技术摘要:
本发明公开了一种空间对象的空间形态重塑方法,包括以下步骤:S1、判断是否与复杂面要素相交,不相交直接跳到S9;S2、得到复杂面要素的外环线和所有内环线;S3、判断所有环线是否与重塑线相交,相交环的个数为0则跳到S9;S4、相交环的个数不为0,进入到S5的重塑环线函 全部
背景技术:
要素重塑工具是QGIS自带的高级编辑工具,主要用于修改面要素的内环线与外环 线的形状,属于图形编辑的一种工具,用来修改矢量边界的形状,具体要求是:重塑线只能 与一个环线相交,若相交且从外部闭合,则会填充闭合区域,若相交且从内部闭合,则会挖 去重叠部分。 现有的原生算法因其设计上的不足,导致实际使用时时间损耗过长且效率低下, 不适用于本领域的多项要素重塑工作。 因此,设计出一种空间对象的空间形态重塑方法势在必行。
技术实现要素:
本发明要解决的技术问题是原生算法耗时主要在于重塑环线函数中几个标识的 判断,每个点的判断都需要使用GEOSAPI的缓冲区包含等空间操作,使用四个标识的不同情 况来得到正确环线不仅耗时长且处理情况复杂。 为解决上述技术问题,本发明提供的技术方案为:一种空间对象的空间形态重塑 方法,包括以下步骤: S1、判断是否与复杂面要素相交,不相交直接跳到S9; S2、得到复杂面要素的外环线和所有内环线; S3、判断所有环线是否与重塑线相交,相交环的个数为0则跳到S9; S4、相交环的个数不为0,进入到S5的重塑环线函数; S5、由重塑环线函数得到重塑环形; S6、重塑环线是外环线,使用外环线和所有内环线创建出多边形面要素; S7、重塑环线是内环线,使用外环线和重塑内环线以及其他内环线创建多边形面 要素; S8、返回多边形要素; S9、算法结束。 本发明与现有技术相比的优点在于:避免了大量调用GEOS空间操作算法,使用拓 扑面化的特点较少次数的调用空间操作算法,重塑效率基本上与arcgis整形工具消耗时间 基本相等,对于复杂面要素的重塑时间为3秒左右,设计思路清晰,算法架构完整且合理,使 用便捷,提升了要素重塑效率。 作为改进,S5的重塑环线函数包括以下步骤: S1、创建环线多边形; S2、将环线与重塑线合并,拓扑化成为多边形集合; S3、遍历多边形集合,得到当前多边形,同时得到多边形内点; 3 CN 111598973 A 说 明 书 2/4 页 S4、判断内点是否在环线多边形中,是则进入到内部多边形;否则进入到外部多边 形; S5、遍历结束; S6、找到边长最长的内部多边形; S7、遍历所有外部多边形; S8、当外部多边形与最长的内部多边形相邻时,则与最长的内部多边形合并得到 结果多边形,否则继续下一外部多边形; S9、遍历结束; S10、返回结果多边形的外环。 作为改进,通过GEOS的拓扑化函数将闭合环线都拓扑出面要素,只需要将外部面 与周长最长面要素合并,内部面删除,得到的结果环线便是重塑的环线。 作为改进,处理多部件要素时,需要多次进入到重塑算法。 附图说明 图1是一种空间对象的空间形态重塑方法的拓扑流程示意图。 图2是一种空间对象的空间形态重塑方法的算法流程图。 图3是一种空间对象的空间形态重塑方法的重塑环形函数的算法流程图。 图4是实施例的拓扑流程示意图。 如图所示:1、重塑线,2、重塑面一,3、面一,4、面二,5、面三,6、重塑面二,7、面四, 8、面五,9、面六,10、面七,11、外部多边形,12、内部多边形,13、最长内部多边形,14、相邻的 外部多边形。