本发明专利技术公开了一种渲染海量矢量数据的方法,包括步骤:根据矢量数据的密集程度,对矢量数据按照第一数据结构的形式进行切割,同时生成第一数据结构形式的用于保存矢量数据的范围信息的数据,将所生成的数据保存为索引文件;将切割得到的矢量数据,按照第二数据结构的形式组织数据结构,生成瓦片数据;生成记录渲染样式的属性文件;从所述索引文件中搜索出待渲染的区域的范围内的瓦片数据,生成调度信息;根据所述调度信息和所述属性文件,对待加载的瓦片数据进行加载,并渲染,对待卸载的瓦片数据进行卸载。采用本发明专利技术的方法来渲染海量矢量数据,能够达到准确、快捷、高效和视觉效果佳地显示地图。
【技术实现步骤摘要】
本专利技术涉及ー种渲染海量矢量数据的方法。
技术介绍
矢量数据渲染是指矢量数据的三维空间显示,使得矢量数据能在三维空间保留其特性,即空间信息和属性信息,并适用于大范围的漫游、缩放和保持数据的真实性。目前矢量数据渲染的方法有以下几种、一、整体矢量数据渲染该方法是将矢量数据整体读入,不做预处理,这样虽然也能够得到真实的渲染结果,但是当矢量数据很大时,会造成严重的效率问题。并且不适合网络传输,难以开发依附网络的渲染系统。ニ、矢量数据栅格化渲染该方法是指先对矢量数据做预处理,预处理过程中配置各种矢量信息,譬如颜色,标注等。然后将其根据地理范围栅格化,生成一幅或者多幅图片,在渲染的时候将这些图片当作纹理来贴到渲染体表面,这样来达到矢量数据渲染的效果。这种方法的缺点主要有I.放大缩小时会造成严重的失真;2.生成的图片数据过大,不利于网络传输;3.无法再次更改渲染的样式(比如顔色),若要修改只能重新对矢量数据做预处理;4.无法得到矢量的空间和属性信息。三、矢量数据金字塔渲染该方法是先对矢量数据做预处理,建立矢量数据的金字塔结构,然后根据范围和视点位置等搜索该金子塔,取得数据然后渲染。该方法的主要缺点有I.金字塔结构中对矢量数据的抽稀方法没有ー个标准;2.生成的渲染数据可能很大,不利于网络传输;3.调度过程较为复杂,会严重影响渲染效率。
技术实现思路
本专利技术的目的是提供一种能够快速捜索到待渲染区域的范围内的矢量数据,使得用户关心区域的矢量数据能够快速显示,达到ー种空间和时间上的平衡的渲染海量矢量数据的方法。本专利技术提供了,包括步骤根据矢量数据的密集程度,对矢量数据按照第一数据结构的形式进行切割,同时生成第一数据结构形式的用于保存矢量数据的范围信息的数据,将所生成的数据保存为索引文件;将切割得到的矢量数据,按照第二数据结构的形式组织数据结构,生成瓦片数据;生成记录渲染样式的属性文件;从所述索引文件中捜索出待渲染的区域的范围内的瓦片数据,生成调度信息;根据所述调度信息和所述属性文件,对待加载的瓦片数据进行加载,并渲染,对待卸载的瓦片数据进行卸载。本专利技术的渲染海量矢量数据的方法,所述第一数据结构为四叉树,其建立依据是所述矢量数据的地理范围和所设置的最大包含矢量数;所述四叉树的叶子节点记录范围值,所述矢量数据根据所述叶子节点的范围值进行裁剪,其中,所述范围值是经纬度值。本专利技术的渲染海量矢量数据的方法,所述瓦片数据包括所述矢量数据的空间信息和属性信息。本专利技术的渲染海量矢量数据的方法,所述瓦片数据是线类型,所述第二数据结构记录有线的起点、终点和标注信息。本专利技术的渲染海量矢量数据的方法,序列化所述四叉树形式的数据,并将序列化的结果保存为索引文件;将所述瓦片数 据序列化。本专利技术的渲染海量矢量数据的方法,将所述索引文件所记录的数据进行反序列化,捜索出待渲染的区域的范围内的瓦片数据,生成调度信息;对待加载的瓦片数据进行反序列化,并渲染。本专利技术的渲染海量矢量数据的方法,所述密集程度是最后切割出来的瓦片数据所含有的最大矢量数,所述最大矢量数是预置的。本专利技术的渲染海量矢量数据的方法,所述属性文件与矢量图层的属性表示方式一致,所述属性文件记录的信息包括矢量类型和顔色。本专利技术的渲染海量矢量数据的方法,根据视ロ范围确定待渲染区域,从所述索引文件中捜索出待渲染的区域的范围内的瓦片数据,生成调度信息。本专利技术的渲染海量矢量数据的方法,所述调度信息包括瓦片数据的文件路径信息、属性信息和调度内容信息。本专利技术的技术效果在于,将矢量数据进行预处理,生成瓦片数据和索引文件,根据索引文件能够快速捜索到范围内的瓦片数据,对渲染端进行调度,控制数据量,做到用户关心区域的矢量能快速显示,并且卸载掉不在区域内的数据,达到一种空间和时间上的平衡,快速渲染出矢量数据。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本专利技术的技术方案做进ー步的详细描述。附图说明附图用来提供对本专利技术的进ー步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中图I为本专利技术的ー个具体实施例的流程图;图2为本专利技术的ー个具体实施例中所使用的四叉树生成算法的流程图;图3为本专利技术的ー个具体实施例中将矢量数据生成瓦片数据的类图;图4为本专利技术的ー个具体实施例中数据调度功能类图。具体实施例方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。以下将结合说明书附图,详细描述本专利技术。,包括步骤根据矢量数据的密集程度,对矢量数据按照第一数据结构的形式进行切割,同时生成第一数据结构形式的用于保存矢量数据的范围信息的数据,将所生成的数据保存为索引文件;将切割得到的矢量数据,按照第二数据结构的形式组织数据结构,生成瓦片数据;生成记录渲染样式的属性文件;从所述索引文件中捜索出待渲染的区域的范围内的瓦片数据,生成调度信息;根据所述调度信息和所述属性文件,对待加载的瓦片数据进行加载,并渲染,对待卸载的瓦片数据进行卸载。作为本专利技术的ー个具体实施例,如图I所示,具体包括以下步骤将矢量数据根据密集程度按照四叉树数据结构进行切割,并序列化此四叉树数据结构,保存为索引文件;将切割得到的矢量数据重新组织数据结构,序列化所生成的瓦片数据,该瓦片数据将作为渲染矢量的原始数据;将生成的瓦片数据和所述索引文件放到指定文件夹,并配置ー份属性文件,该属性文件记录矢量类型,顔色等基本信息;根据视ロ范围,及其他可能的判断信息,利用所述索引文件,快速捜索出范围内的瓦片数据,生成调度信息;解析所生成的调度信息,对要加载的瓦片数据进行反序列化,组织渲染数据,开始渲染;对要卸载的瓦片数据进行渲染的卸载操作。对于所述密集程度是指最后切割出来的瓦片数据所含有的最大矢量数,这个阈值由用户指定,目的在于控制瓦片数据的大小。所述按照四叉树数据结构进行切割,指的是只根据其叶子节点的范围进行切割。所述的索引文件是指创建的四叉树,该四叉树中保存了矢量的范围信息。矢量数据的读取利用开源项目GDAL(Geospatial Data AbstractionLibrary,空间数据转换库)包含的OGR库的功能可以方便的读取,并且支持现有的多种流行的矢量数据格式。四叉树的创建采用堆栈的方式实现,实现流程如图2所示步骤I,将树顶点压入栈;步骤2,判断栈是否为空,如果是,则结束流程,否则,进入步骤3 ;步骤3,取出栈顶点,进入步骤4 ;步骤4,判断节点矢量数是否小于设置的最大矢量数,如果是,进入步骤2,否则,进入步骤5 ;步骤5,根据节点范围分割四块,进入步骤6 ;步骤6,创建分割后的四个节点,压入栈中,进入步骤7 ;步骤7,分别对这四个节点加入切割的矢量ID,进入步骤2。对于矢量数据切割,及生成瓦片数据的功能,涉及类的类图如图3,各个类功能和 关系简介如下矢量瓦片数据生成模块外部调用类是ClipShaps,该类负责将导入的矢量数据切割成给定设置的瓦片数据。FourTree为一个模板类,定义了四叉树数据结本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:关鸿亮,秦春,单文,蔡志煌,刘巍,
申请(专利权)人:北京天下图数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。