一种矢量边界编辑吸附方法、系统和可读存储介质技术方案

技术编号:32014493 阅读:13 留言:0更新日期:2022-01-22 18:32
本发明专利技术公开的一种矢量边界编辑吸附方法、系统和可读存储介质,通过采用一种吸附的编辑方式,实现了矢量边界编辑时线段对线段的自动编辑和修正,大大减少编辑的工作量,且自动吸附的矢量边界线段平滑、数据精准,避免了拓扑错误问题的出现;同时,本发明专利技术通过新增矢量边界吸附模式和编辑矢量边界吸附模式两种模式,分别解决在现有矢量元素数组的基础上新增矢量边界元素的需求和在对现有矢量元素数组的矢量边界元素进行编辑、修正的需求,操作时可根据作业的实际需要选择相应的模式,编辑效率高、适用性强。适用性强。适用性强。

【技术实现步骤摘要】
一种矢量边界编辑吸附方法、系统和可读存储介质


[0001]本专利技术涉及WebGIS(网络地理信息系统)领域,更具体地,涉及一种矢量边界编辑吸附方法、系统和可读存储介质。

技术介绍

[0002]随着社会不断的发展,我国现代化信息技术水平逐渐提高,现有的GIS技术得到了快速的发功能、辅助决策等功能创新、完善,从而更好的提升GIS技术效率、精准度等,并从各个角度上实现空间区域模拟。GIS技术在智慧城市的应用可以有效的对城市、社区村的运行、平安创建、信访维稳、创文提质、网格管理、市场监管、网络舆情、公共视频等进行全展,并取得了良好的成绩,在各个领域中得到了广泛的应用。GIS技术有着超强的数据库管理功能,将现有的空间数据分析方面管理预测,并取得了良好的社会效益与经济效益。
[0003]一般的系统引入GIS系统都需要在线加载和编辑矢量数据,但是目前而言,如专利CN201910865419.6公开的一种GIS数据编辑方法,通常都是通过手动编辑结合编辑工具来完成,这种方式如果是在做辖区边界的编辑时就存在易出错、效率低等问题;因为要编辑的点比较多,通过手动点击及肉眼判断边界的方法来进行边界的连接与填充,就非常容易造成拓扑错误,进而需要不断地调整与提交;大面积的的手动调整带来了十分繁重的工作量,如何能够高效、精确的完成GIS系统矢量边界的编辑工作是目前需要解决的重要问题;因此,提供一种能够实现自动进行边界填充与编辑的方法具有极为重要的意义。

技术实现思路

[0004]本专利技术的目的是提供一种矢量边界编辑吸附方法、系统和可读存储介质,实现自动进行GIS系统矢量边界的编辑吸附,形成平滑的矢量边界,避免了发生拓扑错误,提高了矢量边界的编辑效率和精度。
[0005]为解决上述技术问题,本专利技术第一方面提供了一种矢量边界编辑吸附方法,包括如下步骤:
[0006]S1:遍历地图图层,所述地图图层包括一个或多个网格,每个网格的边界由多个连续排列且首尾相接的矢量元素构成,将所有矢量元素保存成一个待吸附的元素数组;
[0007]S2:矢量边界编辑吸附;当在元素数组上新增加矢量边界元素时,采用新增矢量边界吸附模式进行矢量边界编辑吸附,当对现有元素数组网格矢量元素进行编辑时,采用编辑矢量边界吸附模式进行矢量边界编辑吸附。
[0008]本方案中,所述采用新增矢量边界吸附模式进行矢量边界编辑吸附,具体步骤如下:
[0009]S2.1.1:鼠标点击地图,取得点击点的坐标,从待吸附的元素数组取出最近网格的矢量元素;
[0010]S2.1.2:判断点击点与该网格的距离是否超过预设的阈值;是则中止吸附,否则启动吸附路径数组算法,记录吸附开始点,记为startPoint;
[0011]S2.1.3:移动鼠标,通过吸附路径数组算法计算网格上的待吸附线段,待吸附线段跟随鼠标进行移动;
[0012]S2.1.4:再次点击鼠标,新增矢量边界线段附加到网格的待吸附线段上,完成吸附,记录吸附结束点,记为endPoint;
[0013]S2.1.5:结束吸附路径数组算法,完成新增矢量边界吸附。
[0014]本方案中,步骤S2.1.3中,所述预设的阈值具体包括屏幕距离和地理位置距离两种类型;当地图图层层级较小时使用屏幕距离预设阈值,当地图图层层级较大时使用地理位置距离预设阈值。
[0015]本方案中,所述采用编辑矢量边界吸附模式进行矢量边界编辑吸附,具体步骤如下:
[0016]S2.2.1:选中需要编辑的一号网格,将该一号网格的矢量元素,记为editFeature;
[0017]S2.2.2:拖动一号网格矢量元素的第一个编辑点,记为startPoint,并启动吸附路径数组算法;
[0018]S2.2.3:拖动一号网格矢量元素的第二个编辑点,记为endPoint;
[0019]S2.2.4:通过吸附路径数组算法,分别计算startPoint和endPoint最近的吸附网格;
[0020]S2.2.5:判断startPoint和endPoint最近的吸附网格是否为同一网格;是则命名为二号网格,记为traceFeature;否则吸附结束;
[0021]S2.2.6:通过吸附路径数组算法,计算traceFeature吸附的最长路径记为longRingCoor,计算editFeature吸附的最短路径,记为shortRingCoor;
[0022]S2.2.7:取出shortRingCoor最后一点,与longRingCoor第1的点,计算两点长度记为distanceStart;
[0023]取出shortRingCoor最后一点,与longRingCoor最后1点,计算两点长度记为distanceEnd;
[0024]S2.2.8:判断是否distanceStart>distanceEnd,是则longRingCoor数组反转,否则不变;
[0025]S2.2.9:合并数组shortRingCoor和longRingCoor,并且更新编辑元素的坐标为合并之后的数组;
[0026]S2.2.10:结束吸附路径数组算法,完成编辑矢量边界吸附。
[0027]本方案中,所述吸附路径数组算法,具体步骤如下:
[0028]S5.1将二号网格的所有矢量元素,记为ringCoord数组;
[0029]S5.2将ringCoord数组从i=0开始循环,取出i和i+1的点;
[0030]S5.3判断startPoint是否在i和i+1点的线段上,是则记录数组索引startSegmentIndex=i,否则继续循环;
[0031]S5.4从startSegementIndex开始,循环遍历ringCoord数组上的点,
[0032]S5.4.1(1)取出startSegementIndex和startSegementIndex+1的点,(2)判断endPoint是否在取出两点组成的线段上,是则循环中断,否则继续循环;(3)循环过程中,记录所有的点记为cwCoordinates,并累计所有点的长度记为cwLength;
[0033]S5.4.2(1)取出startSegementIndex和startSegementIndex

1的点,(2)判断
endPoint是否在取出两点组成的线段上,是则循环中断,否则继续循环;(3)循环过程中,记录所有的点记为ccwCoordinates,并累计所有点的长度记为ccwLength;
[0034]S5.5判断是否cwLength>ccwLength,是则cwLength记为最长路径,ccwLength记为最短路径;否则cwLength记为最短路径,ccwLength记为最长路径;
[0035]S5.6:根据需求返回最长或者最短路径。
[0036]本方案中,所述吸附路径算法包括判断startPoint或本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种矢量边界编辑吸附方法,其特征在于,包括如下步骤:S1:遍历地图图层,所述地图图层包括一个或多个网格,每个网格的边界由多个连续排列且首尾相接的矢量元素构成,将所有矢量元素保存成一个待吸附的元素数组;S2:矢量边界编辑吸附;当在元素数组上新增加矢量边界元素时,采用新增矢量边界吸附模式进行矢量边界编辑吸附,当对现有元素数组网格矢量元素进行编辑时,采用编辑矢量边界吸附模式进行矢量边界编辑吸附。2.根据权利要求1所述一种矢量边界编辑吸附方法,其特征在于,所述采用新增矢量边界吸附模式进行矢量边界编辑吸附,具体步骤如下:S2.1.1:鼠标点击地图,取得点击点的坐标,从待吸附的元素数组取出最近网格的矢量元素;S2.1.2:判断点击点与该网格的距离是否超过预设的阈值;是则中止吸附,否则启动吸附路径数组算法,记录吸附开始点,记为startPoint;S2.1.3:移动鼠标,通过吸附路径数组算法计算网格上的待吸附线段,待吸附线段跟随鼠标进行移动;S2.1.4:再次点击鼠标,新增矢量边界线段附加到网格的待吸附线段上,完成吸附,记录吸附结束点,记为endPoint;S2.1.5:结束吸附路径数组算法,完成新增矢量边界吸附。3.根据权利要求2所述一种矢量边界编辑吸附方法,其特征在于,步骤S2.1.3中,所述预设的阈值具体包括屏幕距离和地理位置距离两种类型;当地图图层层级较小时使用屏幕距离预设阈值,当地图图层层级较大时使用地理位置距离预设阈值。4.根据权利要求1所述一种矢量边界编辑吸附方法,其特征在于,所述采用编辑矢量边界吸附模式进行矢量边界编辑吸附,具体步骤如下:S2.2.1:选中需要编辑的一号网格,将该一号网格的矢量元素,记为editFeature;S2.2.2:拖动一号网格矢量元素的第一个编辑点,记为startPoint,并启动吸附路径数组算法;S2.2.3:拖动一号网格矢量元素的第二个编辑点,记为endPoint;S2.2.4:通过吸附路径数组算法,分别计算startPoint和endPoint最近的吸附网格;S2.2.5:判断startPoint和endPoint最近的吸附网格是否为同一网格;是则命名为二号网格,记为traceFeature;否则吸附结束;S2.2.6:通过吸附路径数组算法,计算traceFeature吸附的最长路径记为longRingCoor,计算editFeature吸附的最短路径,记为shortRingCoor;S2.2.7:取出shortRingCoor最后一点,与longRingCoor第1的点,计算两点长度记为distanceStart;取出shortRingCoor最后一点,与longRingCoor最后1点,计算两点长度记为distanceEnd;S2.2.8:判断是否distanceStart>distanceEnd,是则longRingCoor数组反转,否则不变;S2.2.9:合并数组shortRingCoor和longRingCoor,并且更新编辑元素的坐标为合并之后的数组;
S2.2.10:结束吸附路径数组算法,完成编辑矢量边界吸附。5.根据权利要求2或4中任一所述一种矢量边界编辑吸附方法,其特征在于,所述吸附路径数组算法,具体步骤如下:S5.1将二号网格的所有矢量元素,记为ringCoord数组;S5.2将ringCoord数组从i=0开始循环,取出i和i+1的点;S5.3判断startPoint是否在i和i+1点的线段上,是则记录数组索引startSegmentIndex=i,否则继续循环;S5.4从startSegementIndex开始,循环遍历ringCoord数组上的点,S5.4.1(1)取出startSegementIndex和startSegementIndex+1的点,(2)判断endPoint是否在取出两点组成的线段上,是则循环中断,否则继续循环;(3)循环过程中,记录所有的点记为cwCoordinates,并累计所有点的长度记为cwLength;S5.4.2(1)取出startSegementIndex和startSegementIndex

1的点,(2)判断endPoint是否在取出两点组成的线段上,是则循环中断,否则继续循环;(3)循环过程中,记录所有的点记为ccwCoordinates,并累计所有点的长度记为ccwLength;S5.5判断是否cwL...

【专利技术属性】
技术研发人员:马学沛
申请(专利权)人:广东天亿马信息产业股份有限公司
类型:发明
国别省市:

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

1