一种地图加载、渲染方法及系统与流程

文档序号:17080583发布日期:2019-03-09 00:13阅读:221来源:国知局
一种地图加载、渲染方法及系统与流程

本发明属于互联网图像处理技术领域,尤其涉及一种地图加载、渲染方法及系统。



背景技术:

随着互联网技术和图像处理技术的高速发展,电子地图已经深入到人们生活中的各个方面,同时人们对于网络环境的需求也日益提高。由于网页在加载电子地图时,需要下载较多的数据量,网页加载时间的大幅加快,也会带来转换比例的增加。网页在加载电子地图时的速度严重影响了用户体验。

另外,当需要渲染一个大型3d地图,由于数据量庞大,需要渲染的东西非常多,导致系统内存资源开销较大。并且响应时间可能会受到其它网站流量的影响,无法直接控制组件服务器。如果页面发生了重定向,就会延迟整个html文档的传输,而在html文档到达之前,页面中不会呈现任何东西,也没有任何组件会被下载。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种地图加载、渲染方法及系统,旨在有效提高加载电子地图的速度以及提高对电子地图进行渲染的效率。

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

第一方面,本发明实施例提供的一种地图加载、渲染方法,应用于地图加载、渲染系统,所述地图加载、渲染系统包括服务器和本地终端,所述服务器与所述本地终端通信连接,所述地图加载、渲染方法包括以下步骤:

所述本地终端在外部触发指令的作用下向所述服务器发送获取电子地图的请求,以使所述服务器根据所述获取电子地图的请求下发对应的电子地图数据;

将获取到的电子地图数据划分成多个子电子地图数据,所述子电子地图数据包括至少一个电子地图数据单元;

计算每个子电子地图数据对应的包围体以及根据预设的投影矩阵计算每个子电子地图数据的视锥体;

分别检测每个子电子地图数据对应的包围体和视锥体是否发生碰撞;

若发生碰撞,则保存所述子电子地图数据,并对所述子电子地图数据进行渲染。

进一步地,所述计算每个子电子地图数据对应的包围体以及根据预设的投影矩阵计算每个子电子地图数据的视锥体的步骤还包括:

计算每个子电子地图数据与镜头的距离,并按照所述与镜头的距离的大小关系对所述子电子地图数据进行排序,以对所述子电子地图数据进行渲染。

进一步地,所述分别检测每个子电子地图数据对应的包围体和视锥体是否发生碰撞的步骤具体包括:

在平面上判断所述包围体与所述视锥体是否相交;

当所述包围体与所述视锥体相交时,判断所述包围体与所述视锥体发生碰撞。

进一步地,所述分别检测每个子电子地图数据对应的包围体和视锥体是否发生碰撞的步骤进一步包括:

循环检测所述视锥体的六个平面与所述包围体的立体关系;

当检测到所述包围体在所述视锥体的任一平面的负面时,判断所述包围体与所述视锥体未发生碰撞。

第二方面,本发明实施例提供的一种地图加载、渲染系统,包括服务器和本地终端,所述服务器与所述本地终端通信连接,其特征在于,所述本地终端包括:

发送模块,用于在外部触发指令的作用下向所述服务器发送获取电子地图的请求,以使所述服务器根据所述获取电子地图的请求下发对应的电子地图数据;

划分模块,用于将获取到的电子地图数据划分成多个子电子地图数据,所述子电子地图数据包括至少一个电子地图数据单元;

计算模块,用于计算每个子电子地图数据对应的包围体以及根据预设的投影矩阵计算每个子电子地图数据的视锥体;

碰撞检测模块,用于分别检测每个子电子地图数据对应的包围体和视锥体是否发生碰撞;

渲染模块,用于在发生碰撞时,保存所述子电子地图数据,并对所述子电子地图数据进行渲染。

进一步地,所述计算模块,还用于计算每个子电子地图数据与镜头的距离,并按照所述与镜头的距离的大小关系对所述子电子地图数据进行排序,以对所述子电子地图数据进行渲染。

进一步地,所述碰撞检测模块,具体用于在平面上判断所述包围体与所述视锥体是否相交;当所述包围体与所述视锥体相交时,判断所述包围体与所述视锥体发生碰撞。

进一步地,所述碰撞检测模块,进一步用于循环检测所述视锥体的六个平面与所述包围体的立体关系;当检测到所述包围体在所述视锥体的任一平面的负面时,判断所述包围体与所述视锥体未发生碰撞。

综上所述,本发明通过将获取到的电子地图数据划分成多个子电子地图数据,以分别进行调用;然后计算每个子电子地图数据对应的包围体以及根据预设的投影矩阵计算每个子电子地图数据的视锥体;分别检测每个子电子地图数据对应的包围体和视锥体是否发生碰撞;若发生碰撞,则保存所述子电子地图数据,并对所述子电子地图数据进行渲染。由于将电子地图数据划分成多个子电子地图数据以及在检测到子电子地图数据对应的包围体和视锥体发生碰撞时,才对所述子电子地图数据进行渲染,因此能够有效提高加载电子地图的速度以及提高对电子地图进行渲染的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的一种地图加载、渲染系统的应用场景示意图。

图2示出了本发明实施例提供的一种地图加载、渲染方法的流程示意图。

图3示出了本发明实施例提供的一种包围体和视锥体碰撞判断的示意图。

图4示出了本发明实施例提供的一种本地终端的功能模块示意图。

主要元件符号说明:

地图加载、渲染系统100;服务器200;本地终端300;

发送模块301;划分模块302;计算模块303;

碰撞检测模块304;渲染模块305。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,是本发明实施例提供的一种地图加载、渲染系统100的应用场景示意图。其中,所述地图加载、渲染系统100可以包括服务器200和本地终端300。所述服务器200通过网络与所述本地终端300通信连接,以进行数据通信或交互。本实施例中,所述本地终端300用于加载、渲染电子地图。所述本地终端300可以是个人电脑(personalcomputer,pc)、平板电脑、智能手机以及个人数字助理(personaldigitalassistant,pda)等。

如图2所示,是本发明实施例提供的一种地图加载、渲染方法的流程示意图。其中,所述地图加载、渲染方法可以包括以下步骤:

步骤s101:本地终端300在外部触发指令的作用下向所述服务器200发送获取电子地图的请求。本实施例中,所述本地终端300实时监测外部输入的信号,例如用户点击鼠标或滑动鼠标滚轮的动作等。在判断出所述信号为触发指令时,向所述服务器200发送获取电子地图的请求。另外,所述服务器200对接收到的所述获取电子地图的请求进行解析,并发送对应的电子地图数据等。优选地,所述本地终端300根据所述服务器200发送的电子地图数据进行实时刷新和局部刷新,以减少http请求,避免重定向的要求,从而使用户在浏览电子地图的过程中,感受到平滑,提高体验度。

步骤s102:将获取到的电子地图数据划分成多个子电子地图数据,所述子电子地图数据包括至少一个电子地图数据单元。

其中,所述本地终端300在获取到电子地图数据后,将其划分成多个子电子地图数据,并进行分别调用。本实施例中,所述子电子地图数据包括一个或者多个电子地图数据单元。所述电子地图数据单元可以为一矩形。

步骤s103:计算每个子电子地图数据对应的包围体以及根据预设的投影矩阵计算每个子电子地图数据的视锥体。

实施时,所述本地终端300基于电子地图,在其平面上判断所述包围体与所述视锥体是否相交,当所述包围体与所述视锥体相交时,判断所述包围体与所述视锥体发生碰撞。

步骤s104:分别检测每个子电子地图数据对应的包围体和视锥体是否发生碰撞。

具体地,如图3所示,三角形代表视锥体,矩形单元代表子电子地图数据。其中,灰色矩形单元代表与所述视锥体相交,需要渲染。但是白色地带不与所述视锥体相交,因此不需要渲染。如此可以减少需要渲染的内容,进而有效提高了渲染的速度。

进一步地,所述本地终端300循环检测所述视锥体的六个平面与所述包围体的立体关系。由于所述视锥体有六个平面,因此需要循环检测六次。当检测到所述包围体在所述视锥体的任一平面的负面时,判断所述包围体与所述视锥体未发生碰撞。这样检测可以不用考虑上述平面并不是无线延伸的,简化了计算流程。

步骤s105:若发生碰撞,则保存所述子电子地图数据,并对所述子电子地图数据进行渲染。

可选地,所述计算每个子电子地图数据对应的包围体以及根据预设的投影矩阵计算每个子电子地图数据的视锥体的步骤还包括:计算每个子电子地图数据与镜头的距离,并按照所述与镜头的距离的大小关系对所述子电子地图数据进行排序,以对所述子电子地图数据进行渲染。

本实施例中,所述本地终端300首先检测所述子电子地图数据是否需要渲染,再对需要渲染的子电子地图数据进行排序,最后依次逐个对该子电子地图数据进行渲染。

研究表明:所述地图加载、渲染方法只有10%-20%的最终用户响应时间用在下载html文档上,而其余的80%-90%的时间用在下载电子地图页面中的所有组件上。如此提高了电子地图的加载速度以及提升了用户的使用体验等。

请一并参阅图1和图4,所述地图加载、渲染系统100可以包括服务器200和本地终端300。本实施例中,所述本地终端300可以包括发送模块301、划分模块302、计算模块303、碰撞检测模块304和渲染模块305等。下面将对以上功能模块进行描述。

所述发送模块301,用于在外部触发指令的作用下向所述服务器200发送获取电子地图的请求,以使所述服务器200根据所述获取电子地图的请求下发对应的电子地图数据。

所述划分模块302,用于将获取到的电子地图数据划分成多个子电子地图数据,所述子电子地图数据包括至少一个电子地图数据单元。

所述计算模块303,用于计算每个子电子地图数据对应的包围体以及根据预设的投影矩阵计算每个子电子地图数据的视锥体。

优选地,所述计算模块303,还用于计算每个子电子地图数据与镜头的距离,并按照所述与镜头的距离的大小关系对所述子电子地图数据进行排序,以对所述子电子地图数据进行渲染。

所述碰撞检测模块304,用于分别检测每个子电子地图数据对应的包围体和视锥体是否发生碰撞。

所述渲染模块305,用于在发生碰撞时,保存所述子电子地图数据,并对所述子电子地图数据进行渲染。

本实施例中,所述碰撞检测模块304,具体用于在平面上判断所述包围体与所述视锥体是否相交。以及当所述包围体与所述视锥体相交时,判断所述包围体与所述视锥体发生碰撞。

优选地,所述碰撞检测模块304,进一步用于循环检测所述视锥体的六个平面与所述包围体的立体关系。以及当检测到所述包围体在所述视锥体的任一平面的负面时,判断所述包围体与所述视锥体未发生碰撞。

值得注意的是,本发明实施例提供的地图加载、渲染系统100,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容,在此不再赘述。

综上所述,本发明通过将获取到的电子地图数据划分成多个子电子地图数据,以分别进行调用;然后计算每个子电子地图数据对应的包围体以及根据预设的投影矩阵计算每个子电子地图数据的视锥体;分别检测每个子电子地图数据对应的包围体和视锥体是否发生碰撞;若发生碰撞,则保存所述子电子地图数据,并对所述子电子地图数据进行渲染。由于将电子地图数据划分成多个子电子地图数据以及在检测到子电子地图数据对应的包围体和视锥体发生碰撞时,才对所述子电子地图数据进行渲染,因此能够有效提高加载电子地图的速度以及提高对电子地图进行渲染的效率。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1