一种海量的矢量数据的访问和渲染方法、电子设备及存储介质技术

技术编号:16818809 阅读:36 留言:0更新日期:2017-12-16 12:07
本发明专利技术公开了一种海量的矢量数据的访问和渲染方法,包括数据访问方法和数据渲染方法,其中数据访问方法用于获取当前视口中每个要素的要素数据,数据渲染方法用于根据数据访问方法获取的要素对应的要素数据在当前视口内对要素进行绘制渲染;数据访问方法还具体包括以下步骤:获取当前视口的搜索范围;根据搜索范围在索引文件中查找符合条件的要素以及要素外包、要素ID;所述条件为要素外包与搜索范围相交或要素外包被搜索范围所包含;所述要素外包为每个要素的最大坐标和最小坐标所组成的矩形区域;根据每个要素对应的要素ID在数据文件中查找对应的要素数据。本发明专利技术还公开了一种电子设备和计算机可读存储介质。本发明专利技术具有数据访问速度快、渲染快、安全性好的特点。

A mass of access and rendering methods for vector data, electronic devices, and storage media

The invention discloses a method for accessing and rendering vector data of a data, including data access method and data rendering method, the data access method for data acquisition elements for each element of the current viewport, data rendering method for data elements according to the elements of data access method to obtain the corresponding elements in the viewport of rendering; data access method also comprises the following steps: the scope of the search for the current viewport; according to the scope of the search to find the elements that meet the conditions and factors of outsourcing, ID elements in the index file; the conditions for the elements of outsourcing and the scope of the search elements intersect or outsourcing is contained in the search range; the rectangle coordinates for the largest elements of outsourcing each of the elements and the minimum coordinate component; according to the corresponding ID elements for each element in the data file. Find the corresponding element data. The invention also discloses an electronic device and a computer readable storage medium. The invention has the characteristics of fast data access, fast rendering and good security.

【技术实现步骤摘要】
一种海量的矢量数据的访问和渲染方法、电子设备及存储介质
本专利技术涉及一种地理信息系统,尤其涉及一种在地理信息系统中海量的数据的访问方法、电子设备及存储介质。
技术介绍
地理信息系统是一种特定的十分重要的空间信息系统。它是计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、存储、管理、运算、分析、显示和描述的技术系统。但是,基于要素的数字化矢量地图已经完全成为了主流。随着行业技术的向前发展,我们对矢量数据的数据量和访问效率都提出了越来越高的要求。比如,ESRI就先后推出了Shape数据格式、PDB数据格式到FGDB数据格式,将数据访问能力不断提升,虽然已在数据访问能力方面有了质的提升,但面对合库与海量数据编辑方面仍显不足。比如ArcGIS是ESRI公司产品,也是行业GIS平台的标杆。在数据存储上,ArcGIS在不同应用中使用不同的第三方数据库格式进行存储,将自己定义的数据格式存储在第三方数据库中。数据的读写、历史管理、均由第三方由于有专业数据库支持,其数据存储量,历史管理方式以及部分的渲染效率,均由第三方数据库决定。ArcGIS利用空间索引进行数据查询,为数据库中的每个数据表建立空间索引表或索引字段,方便搜索查询、能进行无极缩放。在渲染时,Arcgis根据显示区域范围对数据对在第三方数据库中的空间索引进行查询,将查询结果进行渲染。但是,对于大数据,ArcGIS一次渲染结束前会影响缩放,不能方便地中断,持续缩放体验不佳。也即是,现有的数据访问方面存在以下缺点:1)索引文件展开需要消耗大量的时间,在每次使用时,都需要在内存中对索引文件进行展开并重建,导致消耗大量内存和时间;2)为了能够高效运行,需要将大量数据驻留在内存内,从而消耗大量内存;3)事务不能保持,关闭软件后无法撤销修改:比如对数据进行修改后,传统的做法将每次修改的原始数据作为临时文件额外保存或驻留在内存中,当软件关闭后,修改则无法撤销;4)对于渲染时,现有技术一般是以建立矢量或者栅格图像金字塔进行缩放的;生成金字塔时需要时间,数据不能够达到秒开的效果;5)在数据读取和渲染时,采用单线程运行,首先需要读取数据然后再进行渲染,会造成渲染不能中断,而且长时间的渲染会造成程序假死或漫游不顺畅的情况出现等。
技术实现思路
为了克服现有技术的不足,本专利技术的目的之一在于提供一种海量的矢量数据的访问和渲染方法,其能够解决现有技术中在数据读取和渲染时,对海量数据的处理速度慢的问题。本专利技术的目的之二在于提供一种电子设备,其能够解决现有技术中在数据读取和渲染时,对海量数据的处理速度慢的问题。本专利技术的目的之三在于提供一种计算机可读存储介质,其能够解决现有技术中在数据读取和渲染时,对海量数据的处理速度慢的问题。本专利技术的目的之四在于提供一种海量的矢量数据的访问和渲染装置,其能够解决现有技术中在数据读取和渲染时,对海量数据的处理速度慢的问题。本专利技术的目的之一采用如下技术方案实现:一种海量的矢量数据的访问和渲染方法,包括:数据访问方法和数据渲染方法,其中数据访问方法用于获取当前视口中每个要素的要素数据,数据渲染方法用于根据数据访问方法获取的要素对应的要素数据在当前视口内对要素进行绘制;数据访问方法和数据渲染方法分别由不同的线程来处理,所述数据访问方法还具体包括以下步骤:要素获取步骤:获取当前视口的搜索范围;要素查找步骤:根据搜索范围在索引文件中查找符合条件的要素以及要素外包、要素ID;所述条件为要素外包与搜索范围相交或要素外包被搜索范围所包含;所述要素外包为每个要素的最大坐标和最小坐标所组成的矩形区域;要素数据获取步骤:根据每个要素对应的要素ID在数据文件中查找对应的要素数据。进一步地,所述数据渲染方法包括自上而下的渲染方法、渐进刷新的渲染方法、渲染中断方法、画面平移的局部刷新渲染方法、要素符号化的渲染方法的一种或多种的组合。进一步地,所述自上而下的渲染方法包括以下步骤:首先将当前视口的画布中需要绘制的所有图层的读取和绘制顺序设置为从上到下,并且使用布尔值来记录当前视口的画布中每个像素点是否已被绘制;所述图层为当前视口内同一类型的要素的集合;所述像素点为当前视口的画布中的一个最小绘制单位;当绘制开始前,将当前视口的画布中每个像素点的布尔值均初始化为假;当开始绘制某一像素点的颜色时,判断该像素点对应的布尔值是否为假,若是,则将绘制颜色赋予该像素点,同时将该像素点对应的布尔值设置为真;若否,则跳过该像素点的颜色绘制。进一步地,所述渐进刷新渲染方法包括以下步骤:在数据渲染时,将通过要素数据绘制要素的过程由子线程来完成,将更新当前视口图片由UI线程来完成;将每个要素根据要素的绘制时间进行权重划分,并且要素的绘制时间短的其要素的权重低、要素的绘制时间长的其要素的权重高;子线程在开始绘制时,首先记录计算机的当前时刻,然后开始依次绘制要素并累加每个要素的权重;当权重累加达到设定的权重阈值时,将当前的计算机时刻与记录的计算机当前时刻进行差值运算得到差值;当差值大于设定的时间阈值时,将当前渲染的结果拷贝并通过UI线程更新当前视口图片并显示给用户,同时将权重累加值清零,子线程重新记录计算机时间;当差值小于设定的时间阈值时,将权重累加值清零。进一步地,所述渲染中断方法包括以下步骤:系统中设置一渲染序号并且渲染序号由UI线程管理,初始值为0;当系统每次触发新的渲染请求时,UI线程中的渲染序号自动加1;当子线程开始执行渲染请求时,记录当前时刻下的UI线程中的渲染序号;当时间达到一定值时判断子线程所记录的渲染序号是否等于UI线程当前的渲染序号,若是,则继续渲染;若否,则结束当前渲染请求。进一步地,所述画面平移的局部刷新渲染方法包括以下步骤:当对当前视口进行渲染时,首先判断此次渲染的缩放尺寸与上次渲染的缩放尺寸是否相同:若不同,则执行数据渲染方法的步骤;若相同,则判断当前视口偏移与上次渲染的视口偏移是否相同:若相同,则重新绘制当前视口偏移;若不同,则执行平移操作;所述平移操作具体为:将上一次的视口范围与当前的视口范围求交集从而得到交集的视口范围并将该交集的视口范围作为搜索忽略区域;然后将上一次的视口范围的绘制结果平移贴入当前视口范围;再利用当前视口对要素进行搜索,若搜索到要素的要素外包,则要素完全在所述搜索忽略区域内,则对该要素不进行绘制,反之重新绘制。进一步地,所述要素符号化的渲染方法包括以下步骤:所述要素包括点、线、面和文字注记四种类型;当要素类型为点类型,并且该要素的要素符号化后的外包转换到视口后的宽度均小于设置的第一阈值,则认为该要素不需符号化,将要素绘制成一个单点;当要素类型为线类型,并且该要素的要素符号化后的线型宽度转换到视口后的宽度均小于设置的第二阈值,则认为该要素不需符号化,将要素绘制成单线段;当要素类型为面类型,并且该要素内的填充符号的间距小于设置的第三阈值,则认为该要素不需符号化,将要素进行面域填充;当要素类型为面类型,并且该要素内的填充符号的间距大于设置的第三阈值并且要素的填充符号的外包转换到视口后的宽度均小于设置的第四阈值,则认为该要素内的填充符号不需符号化,将要素的填充符号绘制成单点;当要素为注记类型,并且要素外包转换为视口坐标后宽本文档来自技高网
...
一种海量的矢量数据的访问和渲染方法、电子设备及存储介质

【技术保护点】
一种海量的矢量数据的访问和渲染方法,其特征在于包括:数据访问方法和数据渲染方法,其中数据访问方法用于获取当前视口中每个要素的要素数据,数据渲染方法用于根据数据访问方法获取的要素对应的要素数据在当前视口内对要素进行绘制;数据访问方法和数据渲染方法分别由不同的线程来处理,所述数据访问方法还具体包括以下步骤:要素获取步骤:获取当前视口的搜索范围;要素查找步骤:根据搜索范围在索引文件中查找符合条件的要素以及要素外包、要素ID;所述条件为要素外包与搜索范围相交或要素外包被搜索范围所包含;所述要素外包为每个要素的最大坐标和最小坐标所组成的矩形区域;要素数据获取步骤:根据每个要素对应的要素ID在数据文件中查找对应的要素数据。

【技术特征摘要】
1.一种海量的矢量数据的访问和渲染方法,其特征在于包括:数据访问方法和数据渲染方法,其中数据访问方法用于获取当前视口中每个要素的要素数据,数据渲染方法用于根据数据访问方法获取的要素对应的要素数据在当前视口内对要素进行绘制;数据访问方法和数据渲染方法分别由不同的线程来处理,所述数据访问方法还具体包括以下步骤:要素获取步骤:获取当前视口的搜索范围;要素查找步骤:根据搜索范围在索引文件中查找符合条件的要素以及要素外包、要素ID;所述条件为要素外包与搜索范围相交或要素外包被搜索范围所包含;所述要素外包为每个要素的最大坐标和最小坐标所组成的矩形区域;要素数据获取步骤:根据每个要素对应的要素ID在数据文件中查找对应的要素数据。2.如权利要求1所述的海量的矢量数据的访问和渲染方法,其特征在于:所述数据渲染方法包括自上而下的渲染方法、渐进刷新的渲染方法、渲染中断方法、画面平移的局部刷新渲染方法、要素符号化的渲染方法的一种或多种的组合。3.如权利要求2所述的海量的矢量数据的访问和渲染方法,其特征在于:所述自上而下的渲染方法包括以下步骤:首先将当前视口的画布中需要绘制的所有图层的读取和绘制顺序设置为从上到下,并且使用布尔值来记录当前视口的画布中每个像素点是否已被绘制;所述图层为当前视口内同一类型的要素的集合;所述像素点为当前视口的画布中的一个最小绘制单位;当绘制开始前,将当前视口的画布中每个像素点的布尔值均初始化为假;当开始绘制某一像素点的颜色时,判断该像素点对应的布尔值是否为假,若是,则将绘制颜色赋予该像素点,同时将该像素点对应的布尔值设置为真;若否,则跳过该像素点的颜色绘制。4.如权利要求2所述的海量的矢量数据的访问和渲染方法,其特征在于:所述渐进刷新渲染方法包括以下步骤:在数据渲染时,将通过要素数据绘制要素的过程由子线程来完成,将更新当前视口图片由UI线程来完成;将每个要素根据要素的绘制时间进行权重划分,并且要素的绘制时间短的其要素的权重低、要素的绘制时间长的其要素的权重高;子线程在开始绘制时,首先记录计算机的当前时刻,然后开始依次绘制要素并累加每个要素的权重;当权重累加达到设定的权重阈值时,将当前的计算机时刻与记录的计算机当前时刻进行差值运算得到差值;当差值大于设定的时间阈值时,将当前渲染的结果拷贝并通过UI线程更新当前视口图片并显示给用户,同时将权重累加值清零,子线程重新记录计算机时间;当差值小于设定的时间阈值时,将权重累加值清零。5.如权利要求2所述的海量的矢量数据的访问和渲染方法,其特征在于:所述渲染中断方法包括以下步骤:系统中设置一渲染序号并且渲染序号由UI线程管理,初始值为0;当系统每次触发新的渲染请求时,UI线程中的渲染序号自动加1;当子线程开始执行渲染请求时,记录当前时刻下的UI线程中的渲染序号;当时间达到一定值时判断子线程所记录的渲染序号是否等于UI线程当前的渲染序号,若是,则继续...

【专利技术属性】
技术研发人员:吴龙祥李祥袁琪倪晓东邹磊赖荣贵何星龙上官斌梁哲恒
申请(专利权)人:广东南方数码科技股份有限公司
类型:发明
国别省市:广东,44

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

1