首页> 中国专利> 基于格网的多比例尺海量数据空间渲染方法

基于格网的多比例尺海量数据空间渲染方法

摘要

本发明提供一种基于格网的多比例尺海量数据空间渲染方法,包括:服务器得到每个矢量数据所对应的n条矢量数据属性组;服务器接收前端发送的空间数据查询请求;服务器基于所述查询关键字,获得每条矢量数据在当前比例尺下的1条矢量数据属性组;服务器预定义聚类规则,然后,基于所述聚类规则,对绑定有矢量数据属性组的格网进行聚类计算,得到若干个聚类,并计算得到每个聚类的聚类中心点地理坐标以及每个聚类所包含的矢量数据属性组的数量,前端根据预定义的数据渲染规则,进行渲染。优点为:可以较为完整地实现大数据可视化分析中矢量数据快速显示、多尺度动态渲染以及无数据压盖显示等需求,从而提高客户使用体验。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-14

    授权

    授权

  • 2017-06-09

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20151105

    实质审查的生效

  • 2017-05-17

    公开

    公开

说明书

技术领域

本发明属于数据渲染技术领域,具体涉及一种基于格网的多比例尺海量数据空间渲染方法。

背景技术

矢量数据属于GIS的基本数据类型之一,具有数据结构紧凑、冗余度低、表达精度高以及有利于检索分析等诸多优点,在GIS中得到了广泛的应用,已广泛应用于城市规划、交通运输、军事公安和水利电力等领域。如何快速、有效的渲染矢量数据,已成为当前GIS空间数据可视化的一个重要研究方向。

国内外开发人员设计和实现了多种海量数据的空间渲染技术,其中较为常见的包括三种:

第一种:服务器端渲染技术。服务器端渲染技术,是指:将数据以服务的方式提供给客户端进行展现,其优点是支持利用查询条件来定义显示的内容,并实时返回地图,网络传输小;缺点是数据量大时,生成地图速度慢,数据点之间的显示容易相互压盖、不美观。

第二种:浏览器端聚合渲染技术。浏览器端聚合渲染技术,是指:将数据直接传送到客户端进行展示。该方法有效规避了数据压盖显示的弊端,渲染效果美观;但在海量数据面前,会出现网络传输量大、时间长的问题,并且,前端聚合统计计算花费时间长,浏览器内存占用大,甚至会影响地图的基本操作。

第三种:浏览器端麻点渲染技术。浏览器端麻点渲染技术,是指:在一些地图平台广泛采用,但数据量很大的时候也容易出现浏览器卡死的现象,并且数据密集时显示不美观。

可见,上述三种数据空间渲染技术,均不能完全解决大数据可视化分析时对于点数据的快速显示、条件查询支持、多比例尺动态渲染,以及无数据压盖显示的需求。

发明内容

针对现有技术存在的缺陷,本发明提供一种基于格网的多比例尺海量数据 空间渲染方法,可有效解决上述问题。

本发明采用的技术方案如下:

本发明提供一种基于格网的多比例尺海量数据空间渲染方法,包括以下步骤:

步骤1,服务器预置格网边长、n级比例尺以及每级比例尺所对应的实际比例尺值;其中,n级比例尺是指n个级别的比例尺,分别为第0级比例尺、第1级比例尺…第n-1级比例尺;n为自然数;

步骤2,服务器通过第1数据库接收并存储海量矢量数据;其中,每个所述矢量数据均包括地理坐标以及附属属性;

步骤3,服务器对接收到的每个所述矢量数据均进行以下处理:

步骤3.1,令i=0;

步骤3.2,服务器获取第i级比例尺下的地图,并根据所述格网边长,对第i级比例尺下的地图进行格网化处理,得到格网化后的地图;

步骤3.3,服务器对格网化后的地图中的每个格网赋予唯一的格网ID;然后,服务器在所述格网化后的地图中定位到所述矢量数据,进而计算得到所述矢量数据所属格网的格网ID以及所属格网的格网中心地理坐标;

步骤3.4,服务器在第2数据库中记录矢量数据、比例尺级别、比例尺所对应的实际比例尺值、格网ID以及格网中心地理坐标的对应关系,由此形成一条矢量数据属性组;

步骤3.5,令i=i+1,返回步骤3.2,由此不断循环进行,直到i=n时,停止循环,由此得到每个矢量数据所对应的n条矢量数据属性组;

步骤4,服务器接收前端发送的空间数据查询请求;其中,所述空间数据查询请求携带有当前实际比例尺值以及查询关键字;

步骤5,服务器基于所述查询关键字,对所述第2数据库所存储的海量矢量数据进行数据过滤,得到符合查询关键字的m条矢量数据;其中,m为自然数;

步骤6,服务器对于步骤5得到的每条矢量数据,继续查找与其绑定的n条矢量数据属性组,获得每条矢量数据在当前比例尺下的1条矢量数据属性组;

步骤7,由于步骤6得到的每条矢量数据属性组均包含有格网ID,因此,服 务器对步骤6得到的m条矢量数据属性组进行统计分析,统计得到在当前比例尺下每个格网所包含的矢量数据属性组的数量;

步骤8,服务器预定义聚类规则,然后,基于所述聚类规则,对绑定有矢量数据属性组的格网进行聚类计算,得到若干个聚类,并计算得到每个聚类的聚类中心点地理坐标以及每个聚类所包含的矢量数据属性组的数量;

步骤9,所述服务器将每个聚类的聚类中心点地理坐标以及每个聚类所包含的矢量数据属性组的数量发送给前端;

步骤10,前端接收每个聚类的聚类中心点地理坐标以及每个聚类所包含的矢量数据属性组,并在当前比例尺地图上,根据聚类中心点地理坐标定位到每个聚类中心;

然后,前端根据预定义的数据渲染规则,对每个聚类中心进行渲染,得到渲染结果图;其中,所述数据渲染规则与每个聚类所包含的矢量数据属性组的数量相关。

优选的,步骤6具体为:

服务器判断前端当前实际比例尺值是否与某级比例尺所对应的实际比例尺值相等,如果相等,则该条矢量数据在该级比例尺下的矢量数据属性组,即为最终获得的矢量数据在当前比例尺下的矢量数据属性组;如果不相等,则得到与当前实际比例尺值最接近的某级比例尺,该条矢量数据在该级比例尺下的矢量数据属性组,即为最终获得的矢量数据在当前比例尺下的矢量数据属性组。

优选的,步骤8具体为:

步骤8.1,设绑定有矢量数据属性组的格网数量为x个,依次记为格网1、格网2…格网x;

步骤8.2,服务器预定义最小容差d;

步骤8.3,服务器从屏幕原点开始首先定位到格网i,然后,判断格网i周围是否存在其他任意的格网j,使格网j到格网i的距离小于等于最小容差d;如果存在,则执行步骤8.4;其中,i、j∈(1、2…x);

步骤8.4,设格网i包含的矢量数据属性组的数量为w1个,格网i的中心点为O1,其地理坐标为(xO1,yO1);设格网j包含的矢量数据属性组的数量为w1个, 格网j的中心点为O2,其地理坐标为(xO2,yO2);

则:设格网i和格网j的聚类中心O3的地理坐标为(xO3,yO3),通过以下公式计算得到:

xO3=(xO1*w2+xO2*w1)/(w1+w2);

yO3=(yO1*w2+yO2*w1)/(w1+w2);

聚类中心O3所对应的聚类成员数量为w1+w2;

步骤8.5,然后,继续判断聚类中心O3周围是否存在其他任意的格网k,使格网k到聚类中心O3的距离小于等于最小容差d,如果存在,则根据步骤8.4原理计算得到新的聚类中心和新的聚类成员数;如果不存在,则选择定位下一个格网,并重复执行步骤8.3-步骤8.5,直到所有格网均参与聚类计算。

优选的,步骤9具体为:

所述服务器将每个聚类的聚类中心点地理坐标以及每个聚类所包含的矢量数据属性组的数量进行Gzip压缩处理,得到压缩数据包,并将所述压缩数据包发送给前端。

优选的,所述数据渲染规则为:

以每个聚类中心为圆心作直径为D的圆,并在圆中填充预置的颜色,同时在圆中标注矢量数据属性组的数量;

其中,直径D的数值与每个聚类所包含的矢量数据属性组的数量正相关。

本发明提供的基于格网的多比例尺海量数据空间渲染方法具有以下优点:

可以较为完整地实现大数据可视化分析中矢量数据快速显示、多尺度动态渲染以及无数据压盖显示等需求,从而提高客户使用体验。

附图说明

图1为本发明提供的基于格网的多比例尺海量数据空间渲染方法的流程示意图;

图2为本发明提供的基于格网的多比例尺海量数据空间渲染方法的具体示例图。

具体实施方式

为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以 下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明提供一种基于格网的多比例尺海量数据空间渲染方法,可以较为完整地实现大数据可视化分析中矢量数据快速显示、多尺度动态渲染以及无数据压盖显示等需求,参考图1,具体包括以下步骤:

步骤1,服务器预置格网边长、n级比例尺以及每级比例尺所对应的实际比例尺值;

其中,n级比例尺是指n个级别的比例尺,分别为第0级比例尺、第1级比例尺…第n-1级比例尺;n为自然数;并且,每个级别比例尺对应一个具体的比例尺值,可根据实际需求灵活设置。

作为一种具体示例,n可设置为19级,其与实际比例尺值的对应关系参考表1:

表1

比例尺等级实际比例尺值第0级比例尺1:591657527.591555第1级比例尺1:295828763.795777第2级比例尺1:147914381.897889第3级比例尺1:73957190.948944第4级比例尺1:36978595.474472第5级比例尺1:18489297.737236第6级比例尺1:9244648.868618第7级比例尺1:4622324.434309第8级比例尺1:2311162.217155第9级比例尺1:1155581.108577第10级比例尺1:577790.554289第11级比例尺1:288895.277144第12级比例尺1:144447.638572

第13级比例尺1:72223.819286第14级比例尺1:36111.909643第15级比例尺1:18055.954822第16级比例尺1:9027.977411第17级比例尺1:4513.988705第18级比例尺1:2256.9943525

在上表中,实际比例尺值是指:地图显示1cm的距离所代表的实际地理长度值,单位为米,例如,对于1:4513.988705,其含义为:地图显示1cm,代表实际地理长度4513.988705米。

步骤2,服务器通过第1数据库接收并存储海量矢量数据;其中,每个矢量数据均包括地理坐标以及附属属性;此处,附属属性可以为加油站或商店等,附属属性可以为作为查询的关键字。

步骤3,服务器对接收到的每个矢量数据均进行以下处理:

步骤3.1,令i=0;

步骤3.2,服务器获取第i级比例尺下的地图,并根据格网边长,对第i级比例尺下的地图进行格网化处理,得到格网化后的地图;

步骤3.3,服务器对格网化后的地图中的每个格网赋予唯一的格网ID;然后,服务器在格网化后的地图中定位到矢量数据,进而计算得到矢量数据所属格网的格网ID以及所属格网的格网中心地理坐标;

步骤3.4,服务器在第2数据库中记录矢量数据、比例尺级别、比例尺所对应的实际比例尺值、格网ID以及格网中心地理坐标的对应关系,由此形成一条矢量数据属性组;

步骤3.5,令i=i+1,返回步骤3.2,由此不断循环进行,直到i=n时,停止循环,由此得到每个矢量数据所对应的n条矢量数据属性组;

通过本步骤的计算,对于每个矢量数据,均绑定存储了各级比例尺下矢量数据所属格网ID以及格网中心地理坐标。例如,当n为19级时,对于任何的矢量数据,存储有19组矢量数据属性组。

步骤4,服务器接收前端发送的空间数据查询请求;其中,空间数据查询请求携带有当前实际比例尺值以及查询关键字;

步骤5,服务器基于查询关键字,对第2数据库所存储的海量矢量数据进行数据过滤,得到符合查询关键字的m条矢量数据;其中,m为自然数;

例如,第2数据库所存储的海量矢量数据包括加油站位置的矢量数据、商店位置的矢量数据、餐厅位置的矢量数据等,当查询关键字为加油站时,可将商店位置和餐厅位置等的矢量数据过滤掉,获得与加油站相关的多条矢量数据。

步骤6,服务器对于步骤5得到的每条矢量数据,继续查找与其绑定的n条矢量数据属性组,获得每条矢量数据在当前比例尺下的1条矢量数据属性组;

本步骤具体为:

服务器判断前端当前实际比例尺值是否与某级比例尺所对应的实际比例尺值相等,如果相等,则该条矢量数据在该级比例尺下的矢量数据属性组,即为最终获得的矢量数据在当前比例尺下的矢量数据属性组;如果不相等,则得到与当前实际比例尺值最接近的某级比例尺,该条矢量数据在该级比例尺下的矢量数据属性组,即为最终获得的矢量数据在当前比例尺下的矢量数据属性组。

例如,如果前端当前实际比例尺值为1:72223.819286,直接对应于第13级比例尺,可获得每条矢量数据在第13级比例尺下的1条矢量数据属性组;而如果前端当前实际比例尺值为1:80000,则与其最接近的比例尺级别为第13级比例尺,仍然获得每条矢量数据在第13级比例尺下的1条矢量数据属性组。

步骤7,由于步骤6得到的每条矢量数据属性组均包含有格网ID,因此,服务器对步骤6得到的m条矢量数据属性组进行统计分析,统计得到在当前比例尺下每个格网所包含的矢量数据属性组的数量;

步骤8,服务器预定义聚类规则,然后,基于聚类规则,对绑定有矢量数据属性组的格网进行聚类计算,得到若干个聚类,并计算得到每个聚类的聚类中心点地理坐标以及每个聚类所包含的矢量数据属性组的数量;

本步骤中,在具体实现上,可采用以下聚类算法:

步骤8.1,设绑定有矢量数据属性组的格网数量为x个,依次记为格网1、格网2…格网x;

步骤8.2,服务器预定义最小容差d;

步骤8.3,服务器从屏幕原点开始首先定位到格网i,然后,判断格网i周围是否存在其他任意的格网j,使格网j到格网i的距离小于等于最小容差d;如果存在,则执行步骤8.4;其中,i、j∈(1、2…x);

步骤8.4,设格网i包含的矢量数据属性组的数量为w1个,格网i的中心点为O1,其地理坐标为(xO1,yO1);设格网j包含的矢量数据属性组的数量为w1个,格网j的中心点为O2,其地理坐标为(xO2,yO2);

则:设格网i和格网j的聚类中心O3的地理坐标为(xO3,yO3),通过以下公式计算得到:

xO3=(xO1*w2+xO2*w1)/(w1+w2);

yO3=(yO1*w2+yO2*w1)/(w1+w2);

聚类中心O3所对应的聚类成员数量为w1+w2;

步骤8.5,然后,继续判断聚类中心O3周围是否存在其他任意的格网k,使格网k到聚类中心O3的距离小于等于最小容差d,如果存在,则根据步骤8.4原理计算得到新的聚类中心和新的聚类成员数;如果不存在,则选择定位下一个格网,并重复执行步骤8.3-步骤8.5,直到所有格网均参与聚类计算。

步骤9,服务器将每个聚类的聚类中心点地理坐标以及每个聚类所包含的矢量数据属性组的数量发送给前端;

本步骤中,服务器可首先将每个聚类的聚类中心点地理坐标以及每个聚类所包含的矢量数据属性组的数量进行Gzip压缩处理,得到压缩数据包,并将压缩数据包发送给前端。

通过Gzip进行数据压缩,可将数据压缩至1/6大小(根据实际情况不同压缩大小不同),从而极大降低了网络传输的负担,提高了查询结果返回到前端的速度。

步骤10,前端接收每个聚类的聚类中心点地理坐标以及每个聚类所包含的矢量数据属性组,并在当前比例尺地图上,根据聚类中心点地理坐标定位到每个聚类中心;

然后,前端根据预定义的数据渲染规则,对每个聚类中心进行渲染,得到 渲染结果图;其中,数据渲染规则与每个聚类所包含的矢量数据属性组的数量相关。

具体的,数据渲染规则为:

以每个聚类中心为圆心作直径为D的圆,并在圆中填充预置的颜色,同时在圆中标注矢量数据属性组的数量;

其中,直径D的数值与每个聚类所包含的矢量数据属性组的数量正相关。

例如,渲染规则可以定义为:

200=<聚合统计数值,红色圆圈表示,直径D为45px;

100=<聚合统计数值<200,蓝色圆圈表示,直径D为35px;

50=<聚合统计数值<100,蓝色圆圈表示,直径D为30px;

10=<聚合统计数值<50,蓝色圆圈表示,直径D为25px;

2=<聚合统计数值<10,蓝色圆圈表示,直径D为20px;

1=聚合统计数值,默认颜色,默认大小。

其中,聚合统计数值即为每个聚类所包含的矢量数据属性组的数量。

另外,前端在进行渲染时,可基于相应的开发接口对图层进行了功能扩展,通过扩展的GraphicsLayer方法能够直接进行数据展示。

由此可见,本发明提供的基于格网的多比例尺海量数据空间渲染方法,主要有以下三点创新:(一)服务器预计算海量矢量数据的多比例尺格网时,只需计算不同比例尺下矢量数据所在格网的中心地理坐标,再无其他数据处理,相比其它空间渲染方法而言其处理成本低很多,维护成本也低;(二)服务器预计算海量矢量数据的多比例尺格网,因此,在接到某一比例尺下的条件查询请求时,通过查询数据库,可快速查询到当前比例尺下的矢量数据所属格网,然后,通过实时聚类算法,在当前比例尺下对矢量数据点重新组合,一方面,避免出现压盖显示的现象,另一方面,提高了渲染速率。(三)服务器在对矢量数据进行聚类后,仅向前端返回聚类中心点地理坐标以及每个聚类所包含的成员数量,然后由前端进行数据渲染,从而减少数据传输过程的时延,进一步提高了前端显示速度。通过上述几项创新相互配合,弥补了现有海量数据渲染方法的不足。

试验例1

通过对比,在表2所示相同的环境下,本发明提供的基于格网的多比例尺海量数据空间渲染技术在数据量达到2000万时,地图的渲染仍然游刃有余,而在通过传统聚合客户端聚合渲染技术时,则最多能支持10万条数据的渲染,并且此时的地图操作已经很困难了。对于同一操作请求下,两个方法的绘制效率也有明显的差别:使用传统浏览器端渲染方法的请求响应时间为13.2秒,而使用本发明提供的基于格网的多比例尺海量数据空间渲染方法时,其请求响应时间仅需要2.8秒结果。海量数据空间渲染方法参数对比如表3所示。

表2 海量数据渲染效率对比的测试环境

表3 海量数据空间渲染方法参数对比

需要说明的是,由于点符号是根据格网进行多次聚合计算的位置,除了最大比例尺状态下,每个点符号的位置是格网中心;比例尺越大,点符号与原始点的真实位置越接近。这种处理在大幅提高渲染效率的同时,能够客观反映原始海量数据的空间分布情况。

本例中,使用的是2000万条的数据渲染和地图操作,当然还可以支持更多数据,其响应速度跟后台数据库的数据组织有关。如果将数据分布于多台机器 存储,还可以大大提高海量数据的渲染速度。

试验例2

采用本发明提供的基于格网的多比例尺海量数据空间渲染方法,支持根据条件查询返回渲染效果,通过相应的where条件语句即可进行多字段过虑。渲染结果中,不同的渲染符号代表了不同的聚合统计数值规模。200以上是红色,200以下是蓝色,且200以下会根据数值赋予不同大小的渲染符号。

如图2所示,为渲染结果的一个具体示例,通过图2可以看出,渲染结果的计算是基于当前可视范围实时进行的。结果中,能够看到每次计算的请求耗时情况、当前参与计算的点个数、聚合统计计算数量、没有参与聚合统计的点个数。

通过上述分析可知,本发明提供的基于格网的多比例尺海量数据空间渲染方法,与传统的其他渲染技术相比,具有较大的优势。其主要特色如下:

1、多比例尺格网实时计算。

在不同比例尺下,根据用户在某一比例尺下上传数据的空间位置,实时计算在该比例尺下数据所属格网,然后进行聚合统计计算。算法简单,时间损耗小。

2、基于统计结果的实时渲染。

每次的数据渲染,都依据当前比例尺、当前可视范围、当前所属格网进行实时聚合统计。该方法有效地降低了大数据量实时计算所带来的时间损耗,基于当前视图和格网的统计能够减少计算次数,从而满足实时要求。

3、前端展示直观,网络传输小。

定义了前端最小容差,每次比例尺变化时根据格网实时进行聚类计算(合并统计结果),大幅减少网络传输量,此外还可以避免前端渲染时出现点符号之间的压盖显示问题。

4、支持多字段查询。

用户上传的数据中如果包含了多个属性字段,则可以通过组合条件对这些数据进行筛选,灵活、方便地过滤前端的可视化结果。

5、维护成本低

用户对数据进行的增、删、改等操作,能够在前端直接显示变化,不需要做额外的工作,且不会影响前端的渲染效果影响。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号