一种矢量切片地图高效渲染方法及装置与流程 | 您所在的位置:网站首页 › 切片装置空间 › 一种矢量切片地图高效渲染方法及装置与流程 |
![]() 本发明涉及gis、数字孪生领域,具体提供一种矢量切片地图高效渲染方法及装置。 背景技术: 1、矢量切片地图是一种基于地理数据矢量切片的web地图渲染方式,区别于传统的栅格切片地图,矢量切片中的要素数据以矢量形式存储,因此矢量切片地图具有地图要素无损缩放、地图样式配置灵活的特性。mvt(mapbox vector tiles)是当前较为通用的一种矢量切片数据规范,属于开放地理空间信息联盟的矢量切片标准规范之一。 2、mvt矢量切片的实际应用中,往往因切片数据量过大、几何要素个数过多等因素,导致矢量切片地图渲染时间过长、渲染过程中浏览器内存占用过多等问题,严重影响矢量切片地图用户的使用体验。 技术实现思路 1、本发明是针对上述现有技术的不足,提供一种实用性强的矢量切片地图高效渲染方法。 2、本发明进一步的技术任务是提供一种设计合理,安全适用的矢量切片地图高效渲染装置。 3、本发明解决其技术问题所采用的技术方案是: 4、一种矢量切片地图高效渲染方法,具有如下步骤: 5、s1、获取渲染当前地图所需mvt矢量切片,解析mvt矢量瓦片中需要被渲染的linestring类型几何要素数据; 6、s2、将本次渲染所需的所有linestring几何要素数据按照不同的样式信息,分别以“线段首尾相连”的方式拼接为一条linestring类型几何要素数据,并在拼接过程中分别记录linestring类型几何要素数据的拼接索引位置与要素样式信息; 7、s3、地图渲染过程中运用拼接索引位置信息,分别完成不同样式信息的、拼接后的linestring类型几何要素数据的渲染。 8、进一步地,在步骤s1中,包括: 9、s101、获取mvt矢量切片的请求地址; 10、s102、获取各切片中linestring类型几何要素; 11、s103、解析出linestring几何要素的真实经纬度位置或投影坐标位置。 12、进一步地,在步骤s101中,根据当前地图视角,获取地图渲染所需的切片行列号(x、y)、层级zoom信息,生成mvt矢量切片的请求地址。 13、进一步地,在步骤s102中,将mvt矢量切片的请求地址存入请求队列中,当请求队列中所有的mvt矢量切片完成请求后,获取各切片中的linestring类型几何要素。 14、进一步地,在步骤s103中,根据各切片的行列号、层级与切片要素投影信息、解析出linestring几何要素的真实经纬度位置或投影坐标位置。 15、进一步地,在步骤s2中,包括: 16、s201、将全部linestring几何要素解析结果按照要素样式信息进行重新组合,假设全部mvt矢量切片中linestring几何要素的样式类型数量为n,则样式相同的linestring几何要素分别存入对应的样式队列qn之中; 17、s202、从样式队列qn的linestring几何要素i中,依次取出位置点p存入位置队列pn中,每次几何要素i完成存入,则记录位置队列pn的长度为lm;如果i为样式队列qn中的最后一条linestring几何要素,则向索引队列dn存入lm-1,否则向索引队列dn存入lm-1、lm; 18、s203、按照上述步骤s202的操作流程,依次处理全部n个样式队列qn,分别得到对应的位置队列pn、索引队列dn; 19、进一步地,在步骤s3中,包括: 20、s301、向渲染样式队列qn的顶点着色器中传入位置队列pn、索引队列dn; 21、s302、弹出索引队列dn中队首的前两项索引,分别定义为d0、d1,获取位置队列pn的位置点pj,其中j为位置点pj在位置队列pn中的索引; 22、s303、当j=0时,定义pj的前一位置点为pj+(pj–pj+1),pj的后一位置点为pj+1;当j=lm-1时,定义pj的前一位置点为pj-1,pj的后一位置点为pj; 23、s304、当j>d0且jd1时,再次从索引队列dn中队首弹出前两项索引,分别定义为d0、d1,获取位置pj,再次执行步骤s303,直至索引队列dn为空时,设置剩余的设pj的前一位置点为pj-1,pj的后一位置点为pj+1; 28、s306、使用未跳过的位置点pj及pj的前一位置点、后一位置点,绘制linestring; 29、当pj的下一位置点等于pj时,webgl不制作绘制linestring所需的矩形的顶点索引,否则,使用webgl绘制由pj、pj+1构成的矩形,实现对样式队列qn中linestring类型几何要素的绘制; 30、s307、重复步骤s301至步骤s302,直至完成所有n个样式队列的绘制。 31、一种矢量切片地图高效渲染装置,包括:至少一个存储器和至少一个处理器; 32、所述至少一个存储器,用于存储机器可读程序; 33、所述至少一个处理器,用于调用所述机器可读程序,执行一种矢量切片地图高效渲染方法。 34、本发明的一种矢量切片地图高效渲染方法及装置和现有技术相比,具有以下突出的有益效果: 35、本发明相较于传统绘制矢量切片地图的方法,在一次性绘制超百万级别的线要素数据的过程中,减少了浏览器内存空间的损耗,降低了浏览器内存溢出的风险。 36、通过索引优化的方式,可实现对mvt矢量切片复杂线要素类型的拼接合并,减少了webgl的总体绘制次数,提升了地图画面的渲染效率。 技术特征: 1.一种矢量切片地图高效渲染方法,其特征在于,具有如下步骤: 2.根据权利要求1所述的一种矢量切片地图高效渲染方法,其特征在于,在步骤s1中,包括: 3.根据权利要求2所述的一种矢量切片地图高效渲染方法,其特征在于,在步骤s101中,根据当前地图视角,获取地图渲染所需的切片行列号(x、y)、层级zoom信息,生成mvt矢量切片的请求地址。 4.根据权利要求3所述的一种矢量切片地图高效渲染方法,其特征在于,在步骤s102中,将mvt矢量切片的请求地址存入请求队列中,当请求队列中所有的mvt矢量切片完成请求后,获取各切片中的linestring类型几何要素。 5.根据权利要求4所述的一种矢量切片地图高效渲染方法,其特征在于,在步骤s103中,根据各切片的行列号、层级与切片要素投影信息、解析出linestring几何要素的真实经纬度位置或投影坐标位置。 6.根据权利要求5所述的一种矢量切片地图高效渲染方法,其特征在于,在步骤s2中,包括: 7.根据权利要求6所述的一种矢量切片地图高效渲染方法,其特征在于,在步骤s3中,包括: 8.一种矢量切片地图高效渲染装置,其特征在于,包括:至少一个存储器和至少一个处理器; 技术总结本发明涉及GIS、数字孪生领域,具体提供了一种矢量切片地图高效渲染方法及装置,具有如下步骤:S1、获取渲染当前地图所需MVT矢量切片,解析MVT矢量瓦片中需要被渲染的LineString类型几何要素数据;S2、将本次渲染所需的所有LineString几何要素数据按照不同的样式信息,分别以“线段首尾相连”的方式拼接为一条LineString类型几何要素数据,并在拼接过程中分别记录LineString类型几何要素数据的拼接索引位置与要素样式信息;S3、地图渲染过程中运用拼接索引位置信息,分别完成不同样式信息的、拼接后的LineString类型几何要素数据的渲染。与现有技术相比,本发明能够减少浏览器内存空间的损耗,降低浏览器内存溢出的风险。技术研发人员:高国强,柴青,崔维康,蒋萌,刘晓宇受保护的技术使用者:浪潮智慧城市科技有限公司技术研发日:技术公布日:2024/6/30 |
CopyRight 2018-2019 实验室设备网 版权所有 |