掌桥专利:专业的专利平台
掌桥专利
首页

一种动态图层数据的加载方法、装置、设备和存储介质

文献发布时间:2023-06-19 18:29:06


一种动态图层数据的加载方法、装置、设备和存储介质

技术领域

本发明涉及数据处理技术领域,具体涉及一种动态图层数据的加载方法、装置、设备和存储介质。

背景技术

在WebGIS(网络地理信息系统)应用中,地图服务数据可分为动态图层数据和栅格图层数据。栅格图层数据在发布服务的时候做了切片缓存,因此在客户端进行服务请求时,服务端直接把提前缓存的图片返给客户端。由于在进行切片缓存后相关数据就形成了一张图片,在WebGIS应用里进行查询、统计、分析等功能时是不能使用的。只有动态图层数据所形成的地图画面才能进行查询、统计、分析等功能,而动态图层数据在收到客户端的服务请求时,服务端会根据当前请求参数,对该范围内的数据在服务端进行动态出图,再将整张图片返回给客户端。当地图的可视范围比较小时,服务端动态出图会比较快,其延时可忽略不计,但随着可视范围的增加,服务端的计算压力随之增加,动态出图的时间会变长,出图完成后才会返回给客户端,在客户端的加载过程会出现长时间的等待。因此如何提高动态图层数据的出图效率已经成为亟需解决的技术问题。

发明内容

为了解决现有技术存在的出图效率低、速度慢的问题,本发明提供了一种动态图层数据的加载方法、装置、设备和存储介质,其具有出图效率高、速度快等特点。

根据本发明具体实施方式提供的一种动态图层数据的加载方法,包括:

获取当前展示界面的可视范围;

基于所述可视范围确定所述当前展示界面中所处于的格网层级;

基于所述格网层级中每个网格的坐标对应确定每个所述网格所在的地理范围;

基于每个所述网格的地理范围和所述格网层级对应生成每个所述网格的动态图层数据请求地址;

将每个所述网格的动态图层数据请求地址发送至动态图层数据服务器中,以使所述动态图层数据服务器将每个所述网格所在的地理范围内的动态图层数据发送至相对应的网格中进行展示。

进一步地,所述获取当前展示界面的可视范围,包括:

响应于用户在所述当前展示界面的缩放操作,确定所述当前展示界面的比例尺。

进一步地,所述基于所述可视范围确定所述当前展示界面中所处于的格网层级,包括:

基于所述当前展示界面的比例尺确定所述当前展示界面在预设影像金字塔中的格网层级。

进一步地,所述基于所述格网层级中每个网格的坐标对应确定每个所述网格所在的地理范围,包括:

基于所述格网层级中每个像素的实际距离、每个所述网格的大小以及每个所述网格的行值和列值对应确定每个所述网格所在的地理范围。

进一步地,所述基于所述格网层级中每个像素的实际距离、每个所述网格的大小以及每个所述网格的行值和列值对应确定每个所述网格所在的地理范围,包括:

基于

xmin=origin.x+resolution*tileSize*col

ymin=origin.y+resolution*tileSize*(row+1)

xmax=origin.x+resolution*tileSize*(col+1)

ymax=origin.y+resolution*tileSize*row

确定每个所述网格所在的地理范围,xmin为所述地理范围的最小点的横坐标,origin.x为坐标原点的横坐标,resolution为所述格网层级中每个像素的实际距离,tileSize为每个所述网格的大小,col为每个所述网格的行值,row为每个所述网格的列值,ymin为所述地理范围的最小点的纵坐标,origin.y为坐标原点的纵坐标,xmax为所述地理范围的最大点的横坐标,ymax为所述地理范围的最大点的纵坐标。

进一步地,所述每个所述网格的行值和列值的确定过程包括:

基于

col=floor((x0-x)/(tileSize*resolution))

row=floor((y0-y)/(tileSize*resolution))

得到每个所述网格的行值和列值,col为每个所述网格的行值,floor((x0-x)为每个所述网格的在横坐标的实际长度,row为每个所述网格的列值,floor((y0-y)每个所述网格在纵坐标的实际长度。

进一步地,每个所述网格的动态图层数据请求地址的形式至少包括URL地址。

根据本发明具体实施方式提供的一种动态图层数据的加载装置,包括:

范围获取模块,用于获取当前展示界面的可视范围;

格网确定模块,用于基于所述可视范围确定所述当前展示界面中所处于的格网层级;

范围确定模块,用于基于所述格网层级中每个网格的坐标对应确定每个所述网格所在的地理范围;

请求生成模块,用于基于每个所述网格的地理范围和所述格网层级对应生成每个所述网格的动态图层数据请求地址;以及

请求发送模块,用于将每个所述网格的动态图层数据请求地址发送至动态图层数据服务器中,以使所述动态图层数据服务器将每个所述网格所在的地理范围内的动态图层数据发送至相对应的网格中进行展示。

根据本发明具体实施方式提供的一种设备,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现如上所述的动态图层数据的加载方法的各个步骤。

根据本发明具体实施方式提供的一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的动态图层数据的加载方法的各个步骤。

本发明所提供的动态图层数据的加载方法,可以获取当前展示界面的可视范围。然后基于该可视范围确定当前展示界面中所处于的格网层级。再基于该格网层级中每个网格的坐标对应确定每个网格所在的地理范围。再基于每个网格的地理范围和格网层级对应生成每个网格的动态图层数据请求地址。通过将每个网格的动态图层数据请求地址发送至动态图层数据服务器中,可使动态图层数据服务器将每个网格所在的地理范围内的动态图层数据发送至相对应的网格中进行展示。该动态图层数据的加载方法通过将整个的动态出图的请求,变成每个网格区域内的动态出图请求,由于划分的网格属于小范围,可以有效提高服务端的动态出图效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是根据一示例性实施例提供的动态图层数据的加载方法的流程图;

图2是根据一示例性实施例提供的动态图层数据的加载装置的结构图;

图3是根据一示例性实施例提供的设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照图1所示,本发明的实施例提供了一种动态图层数据的加载方法,该方法可以包括以下步骤:

101、获取当前展示界面的可视范围。

在用户浏览网页地图应用或直接使用地图软件进行地图的查看时,会在用户终端当前展示界面中展示用户通过鼠标点击或通过缩放按键进行选择进行展示界面的缩放,当前展示界面的可视范围由当前展示界面的比例尺所决定的,通过接收到用户的缩放操作的请求后,根据缩放请求得到缩放完成后的当前展示界面的比例尺。可提前将地理信息系统中的动态图层数据发布成在服务器中的动态图层数据服务。然后根据动态图层数据服务所参照得空间坐标系(wkid)可形成动态图层数据的影像金字塔,在实际使用时可根据用户需要显示多少种比例尺下的数据,需要显示的是原始影像中的哪个区域的数据,将原始动态图层数据的影像按照这些需求进行划分和提取。最低层就是比例尺最小的一级的格网,而最上层的则是比例尺最大的一级格网。即比例尺越小的级别格网数据越少,反之则越大。

102、基于可视范围确定当前展示界面中所处于的格网层级。

根据当前展示界面的比例尺确定当前展示界面在预设影像金字塔中的格网层级。一般当前展示界面在打开后默认采用256*256大小的格网,其他范围也可以,比如512*512也可以。根据影像金字塔的比例尺,结合下面的公式可得到不同层级下的分辨率,即格网层级中每个像素的实际距离resolution,具体如下:

scale=1:(resolution*DPI/0.0254),其中scale表示不同层级的比例尺,DPI为一常数,通常可取为96,resolution格网层级中每个像素的实际距离。其中空间坐标系的参考原点是origin(x,y)可根据wkid来确定。

103、基于格网层级中每个网格的坐标对应确定每个网格所在的地理范围。

通过确定的格网层级中每个像素的实际距离、每个网格的大小以及每个网格的行值和列值对应确定每个网格所在的地理范围,具体如下:

xmin=origin.x+resolution*tileSize*col

ymin=origin.y+resolution*tileSize*(row+1)

xmax=origin.x+resolution*tileSize*(col+1)

ymax=origin.y+resolution*tileSize*row

其中xmin为地理范围的最小点的横坐标,origin.x为坐标原点的横坐标,resolution为格网层级中每个像素的实际距离,tileSize为每个网格的大小,col为每个网格的行值,row为每个网格的列值,ymin为地理范围的最小点的纵坐标,origin.y为坐标原点的纵坐标,xmax地理范围的最大点的横坐标,ymax为地理范围的最大点的纵坐标。其中每个网格的行值和列值的确定过程包括:

基于

col=floor((x0-x)/(tileSize*resolution))

row=floor((y0-y)/(tileSize*resolution))

得到每个网格的行值和列值,col为每个网格的行值,floor((x0-x)为每个网格的在横坐标的实际长度,row为每个网格的列值,floor((y0-y)每个网格在纵坐标的实际长度。

104、基于每个网格的地理范围和格网层级对应生成每个网格的动态图层数据请求地址。

其中每个网格的动态图层数据请求地址可以URL地址的形式生成,通过互联网直接访问服务器中的动态图层数据服务,并可基于服务器的并发请求技术同时进行请求,从而同时进行动态图层数据的请求。其中URL地址形式的动态图层数据请求地址如下所示:

/export?dpi=96&transparent=true&format=png8&bbox=&bboxSR=&imageSR=&size=&f=image。

105、将每个网格的动态图层数据请求地址发送至动态图层数据服务器中,以使动态图层数据服务器将每个网格所在的地理范围内的动态图层数据发送至相对应的网格中进行展示。

服务器根据同时收到的每个网格的请求地址,根据地址中的包括的格网层级和每个网格的地址范围,将影像金字塔中相应的动态图层数据分别发送至当前展示界面进行展示,使得一个动态图层数据的大范围展示,转化成了多个小范围的格网区域渲染,每个格网区域请求获得响应后即可渲染出来,从而实现动态图层数据的整个可视范围内的分块加载过程。从而大大的提高了动态图层数据的加载速度。

基于同样的设计思路参照图2所示,本发明的实施例还提供了一种动态图层数据的加载装置,该装置在运行时可以实现上述动态图层数据的加载方法的各个步骤,该装置可以包括:

范围获取模块201,用于获取当前展示界面的可视范围.

格网确定模块202,用于基于可视范围确定所述当前展示界面中所处于的格网层级。

范围确定模块203,用于基于格网层级中每个网格的坐标对应确定每个网格所在的地理范围。

请求生成模块204,用于基于每个网格的地理范围和格网层级对应生成每个网格的动态图层数据请求地址。以及

请求发送模块205,用于将每个网格的动态图层数据请求地址发送至动态图层数据服务器中,以使动态图层数据服务器将每个网格所在的地理范围内的动态图层数据发送至相对应的网格中进行展示。

该动态图层数据的加载装置在运行时具有和上述动态图层数据的加载方法相同的有益效果,该装置的具体实现方式可参照上述动态图层数据的加载方法的实现方式,本发明在此不再赘述。

参照图3所示本发明的实施例还提供了一种设备,该设备可以包括:存储器301和处理器302.

该存储器301,用于存储程序.

处理器302,用于执行该程序,实现如上实施例所述的动态图层数据的加载方法的各个步骤。

本发明的实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如上实施例所述的动态图层数据的加载方法的各个步骤。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。

本发明各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。

本发明所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种多图层合并的方法、装置、设备以及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 数据加载方法、装置、计算设备和计算机可读存储介质
  • 一种组件加载方法、装置、计算机设备及存储介质
  • 一种视频数据动态加载方法、装置、电子设备及存储介质
  • 数据源处理插件动态加载的方法、装置、设备及存储介质
技术分类

06120115582059