CN104504106A - 一种地图覆盖物区域渲染方法及相关设备 - Google Patents
一种地图覆盖物区域渲染方法及相关设备 Download PDFInfo
- Publication number
- CN104504106A CN104504106A CN201410842652.XA CN201410842652A CN104504106A CN 104504106 A CN104504106 A CN 104504106A CN 201410842652 A CN201410842652 A CN 201410842652A CN 104504106 A CN104504106 A CN 104504106A
- Authority
- CN
- China
- Prior art keywords
- coverture
- map
- renderer
- information
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种地图覆盖物区域渲染方法及相关设备。本发明采用覆盖物动态加载渲染技术,通过定义焦点视图范围,来管理覆盖物的创建与销毁,可以实现内存与运算资源的合理分配利用。将浏览器视野范围外的无用覆盖物进行销毁,实现有目的的部分销毁,而不是统一全部销毁,减少系统中内存与CPU资源占用,同时也使系统的销毁更灵活。及时加载用户视野范围内未加载覆盖物,在降低消耗的同时保证提供给用户最真实的可视化信息。
Description
技术领域
本发明涉及电子地图领域,尤其涉及一种地图覆盖物区域渲染方法及其系统内对象。
背景技术
WEB-GIS(网络地理信息系统)指基于Internet平台,客户端应用软件采用网络协议,运用在Internet上的地理信息系统。一般由多主机,多数据库和多个客户端以分布式形式连接在Internet上而组成。
在Web-GIS应用中,所有叠加或覆盖到地图的内容,我们统称为地图覆盖物。如标注、矢量图形元素(包括:折线、多边形和圆)、信息窗口等。覆盖物拥有自己的地理坐标,当手动拖动或缩放地图时,它们会根据在地图上相应的坐标位置与地图变动后像素转换进行二次渲染,此渲染是地图自动记忆位置然后运用算法进行渲染。我们会在地图中通过添加各种不同的覆盖物,来标示出实际物体在地图上的位置,使展现更贴近于现实。
在现有技术方案中,当地图移动或缩放等事件触发时,不会存在人工对地图上的覆盖物进行管理,即使地图发生了移动使覆盖物不可见,覆盖物也不会被销毁,或者是地图变动后又有新的覆盖物需在此视图上显示,地图也不会自动去监测并进行添加。地图只会将变动前添加到它上面的覆盖物进行记忆保存,待地图变动后运用相应算法进行二次渲染。因此,只有通过手动刷新页面或清空操作才能销毁所有覆盖物,而此销毁操作是极端的操作,不能按照特定意愿去进行相应销毁操作。
在现有技术方案中,随着数据量的增大,添加到地图上的覆盖物越来越多,这些覆盖物占用了系统中大量的内存与CPU资源,而用户在多数情况并不需要同时看到所有的覆盖物,这时处于浏览器视野范围外的覆盖物的信息就会成为无用的数据。由于地图上的覆盖物过多,用户在使用该系统的过程中,内存与CPU都处于高负荷状态。当覆盖物数量达到一定规模后,会占用用户客户端中更多的内存空间与CPU资源,最终导致浏览器卡顿甚至崩溃,使得用户在使用该类系统时出现较差的用户体验。除此之外,当用户拖动地图或缩放地图时,地图发生相应变动,而现有技术方案调用的是地图自恢复方法,地图每移动一次其内部就会又重新渲染一次之前记忆中的所有覆盖物。而如果用户操作频繁,地图就会一直不停地工作,给地图带来的负载与工作量非常大,从而进一步增加了内存空间与CPU资源的占用,同时也进一步降低了用户体验。
当前,现有技术的缺点是,地图负载较大,内存与CPU资源的占用过高。本发明采用一种地图覆盖物区域渲染算法,旨在使用渲染算法识别无用的覆盖物数据并进行删除,添加当前视图内需展示但未渲染资源,从而在展现最真实数据给用户的同时减少系统占用内存与CPU资源。
发明内容
本发明主要是为了解决上述技术问题,提供一种地图覆盖物区域渲染系统,包括地图,其特征在于,还包括渲染器管理单元、渲染器、覆盖物图层实例管理单元;所述渲染器分别与所述渲染器管理单元和所述覆盖物图层实例管理单元相连接,所述覆盖物图层实例管理单元还与所述地图相连接;
所述渲染器管理单元用于对所述渲染器进行管理,负责各渲染器调配;
所述渲染器用于对图层和/或覆盖物进行渲染;
所述覆盖物图层实例管理单元用于向地图上添加或删除所述覆盖物,更新覆盖物信息与位置,对覆盖物进行本地存储与管理。
优选的是,所述地图覆盖物区域渲染系统还包括通信模块,当渲染事件由定时位置信息推送引发的涂层信息变更时,触发所述通信模块;所述通信模块接收到后台推送过来的信息后,对其进行相应的处理转换,将信息保存到本地存储中。
在上述任一方案中优选的是,所述覆盖物是一种图文信息,添加到地图上表示现实中某个实物,所述覆盖物信息包括文字信息和图像信息。
在上述任一方案中优选的是,所述覆盖物是添加到地图中内容的统称;包括矢量图形元素、文字标注、图片、信息窗口。
本发明还提供一种渲染器管理单元,包括:查找模块和切换模块,
所述查找模块用于寻找合适的渲染器;
所述切换模块用于切换渲染器和图层。
优选的是,所述查找模块还包括:渲染器循环链表,所述渲染器循环链表中按一定顺序排列渲染器;在所述渲染器管理单元的所述查找模块查找合适的渲染器时,按照所述渲染器循环链表中的顺序查找。
在上述任一方案中优选的是,所述渲染器循环链表最后一个为通用渲染器,所述通用渲染器无条件渲染;当其他每个渲染器都无法渲染时,调用通用渲染器进行渲染。
本发明还提供一种渲染器,包括转接模块和渲染模块,
所述转接模块,用于图层和不同地图API适配转换工作;
所述渲染模块,用于对图层及图层上覆盖物进行渲染。
本发明还提供一种覆盖物图层实例管理单元,用于对覆盖物进行本地存储和管理,包括遍历模块、添加模块、更新模块和销毁模块,所述遍历模块分别与添加模块、更新模块和销毁模块相连接;
所述遍历模块,用于遍历所述覆盖物信息;
所述添加模块,将所述覆盖物添加到地图中;
所述更新模块,更新所述覆盖物的相关信息和所述覆盖物的可视化图像;
所述销毁模块,用于销毁所述覆盖物所述覆盖物的相关信息和所述覆盖物的可视化图像。
本发明还提供一种地图覆盖物区域渲染方法,其特征在于,包括:
渲染器管理单元接收到通信模块推送的消息后和/或监听地图事件接收到事件触发后,通过对比推送消息或事件和渲染器的方法名,如果相同,则选用所述渲染器,如不同则切换下一个渲染器进行对比,直至找到合适的渲染器;
找到所述合适的渲染器后,先判断其与上次渲染所用渲染器是否相同,如果相同则不对图层进行处理,如果不同则销毁当前图层,添加新图层。
优选的是,所述渲染器管理单元先查找上一次使用的渲染器;如果首次调用所述渲染器管理单元,则根据渲染器循环链表中的顺序,依次查找合适的渲染器。
在上述任一方案中优选的是,如果所有渲染器都不符合条件,则选择通用渲染器。
在上述任一方案中优选的是,所述销毁当前图层,添加新图层包括将上一图层的数据和接收到的新数据做并集,组成最新一图层的渲染数据;所述渲染管理对象接收到上一图层的图层信息后,所述上一图层自行销毁本图层信息;所述最新一图层的渲染数据作为参数传送给渲染器渲染方法。
本发明还提供一种地图覆盖物区域渲染方法,其特征在于,包括:
被渲染器管理单元选中的渲染器,显示其相对应的图层的展示方法,将接收自所述渲染器管理单元的参数传送给覆盖物图层实例管理单元。
本发明还提供一种地图覆盖物区域渲染方法,其特征在于,包括:
覆盖物图层实例管理单元遍历覆盖物相关信息,对每个所述覆盖物的相关信息操作如下,
判断是即时订阅产生的响应还是定时订阅产生的响应;
如果是所述即时订阅,则判断是否已被渲染,
如果未被渲染,则先初始化所述覆盖物、将所述覆盖物信息id保存到本地存储数组中、将所述覆盖物信息id和所述覆盖物保存到本地存储对象中,将所述覆盖物保存到当前视图覆盖物数组中,
如果已被渲染,则更改所述覆盖物的位置和相关信息,更新所述覆盖物在地图上的可视化图像,
如果是所述定时订阅产生的响应,则判断是否已被渲染,
如果未被渲染,初始化所述覆盖物,将所述覆盖物信息id保存到本地存储数组中,将所述覆盖物信息id和所述覆盖物保存到本地存储对象中,再判断是否在当前视图的扩大图中
如果在,则将所述覆盖物保存到当前视图覆盖物数组中,
如果不在,则不进行任何操作;
如果已被渲染,则判断是否在当前视图的扩大图中,
如果在所述扩大图中,则更改所述覆盖物的位置和相关信息,更新所述覆盖物在地图上的可视化图像,并将所述覆盖物保存到当前视图覆盖物数组中;
如果不在所述扩大图中,则从当前视图中销毁此覆盖物,并将其从当前视图对象和数组中删除;
遍历所有所述覆盖物信息后,批量添加所述当前视图覆盖物数组中的覆盖物到地图上,再一次遍历所述当前视图覆盖物数组,对覆盖物相关信息进行绑定。
优选的是,将所述覆盖物信息id和所述覆盖物保存到本地存储对象中的保存形式为键值对。
在上述任一方案中优选的是,所述操作2为将所述覆盖物信息id保存到本地存储数组中。
在上述任一方案中优选的是,所述当前视图的扩大图为当前视图范围扩大1/4后的视图。
本发明还提供一种地图覆盖物区域渲染方法,当地图被移动距离大于当前视图范围的1/8时,其特征在于,包括:
图层类实例对象遍历覆盖物相关信息,将最新视图范围内的覆盖物和上一视图范围已加载的覆盖物作交集,处于交集范围内的所述覆盖物不做处理,加载渲染位置在所述最新视图内的覆盖物,并将所述覆盖物的信息添加到本地存储对象中;删除渲染位置在所述上一视图而不在所述最新视图范围内的所属覆盖物,并将所述覆盖物信息从本地存储对象中删除。
与现有技术相比,本发明采用覆盖物动态加载渲染技术,通过定义焦点视图范围,来管理覆盖物的创建与销毁,可以实现内存与运算资源的合理分配利用。将浏览器视野范围外的无用覆盖物进行销毁,实现有目的的部分销毁,而不是统一全部销毁,减少系统中内存与CPU资源占用,同时也使系统的销毁更灵活。及时加载用户视野范围内未加载覆盖物,在降低消耗的同时保证提供给用户最真实的可视化信息。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这鞋附图获得其他的附图。
图1是按照本发明的地图覆盖物区域渲染方法的实施例1的流程图;
图2是按照本发明的地图覆盖物区域渲染方法的实施例1的序列图;
图3是按照本发明的地图覆盖物区域渲染方法的实施例1中步骤7的流程图;
图4是按照本发明的地图覆盖物区域渲染方法的实施例1的当前视图的示意图;
图5是按照本发明的地图覆盖物区域渲染方法的实施例2的流程图;
图6是按照本发明的地图覆盖物区域渲染方法的实施例2的序列图;
图7是按照本发明的地图覆盖物区域渲染方法实施例2的当前视图的示意图。
具体实施方式
下面结合附图和优选的实施方式对本发明作进一步详细描述。权利要求中构成要件和实施例中具体实例之间的对应关系可以如下例证。这里的描述意图在于确认在实施例中描述了用来支持在权利要求中陈述的主题的具体实例,由于在实施例中描述了实例,不意味着该具体实例不表示构成要件。相反地,即使在此包含了具体实例作为对应一个构成要件的要素特征,也不意味着该具体实例不表示任何其它构成要件。
此外,这里的描述不意味着对应于实施例中陈述的具体实例的所有主题都在权利要求中引用了。换句话说,这里的描述不否认这种实体,即对应实施例包含的具体实例,但不包含在其任何一项权利要求中,即,能够在以后的修正被分案并申请、或增加的可能的发明的实体。
应当注意的是,“系统”在此意味着由两个或更多设备构成的处理。
“网络”意味着至少连接了两个设备的机构,并且在其中,一条信息能够从一个设备发送到另一个设备。经由网络建立通信的设备可以是彼此分离的,也可以是构成一个机器的内部模块。
“通信”可表示无线通信和有线通信。然而,还可以是混合无线和有线通信的通信,更具体地,在某个区段采取无线通信而在另一个区段采取有线通信的通信。同样,它也可以是这样的通信:从一个设备向另一设备的通信是有线的,且相反方向的通信是无线的。
为了进一步解释本发明的技术方案,下面通过具体实施例来对本发明进行详细阐述。
区域渲染广义地讲是利用从设备上获取的数据,对其进行转义,再对信息进行遍历检索,将数据按照用户更好理解的图像进行可视化显示,在地图上相应位置添加覆盖物来代表现实中的实物,同时也可以给相应实物绑定信息窗口来展示实物相关联信息。
本发明的实现是通过模块化思想从信息获取到最后渲染逐步与分块的方式完成分工合作。涉及到的一些模块列举出了下面具体介绍本发明实现方案时所涉及到系统中的模块、类和对象。
本发明区域渲染执行过程相关对象包括:通信模块、渲染器管理单元、渲染器、图层管理类、覆盖物图层实例管理单元、地图、当前视图对象、覆盖物。
通信模块:通信模块是底层数据模块,是接收位置信息并进行格式转换和控制数据流转的模块,通过Ajax请求并接收数据,然后对数据进行处理操作。
渲染器管理单元:此对象是对各渲染器进行管理的对象,主要负责各渲染器的调配工作。通过监听地图事件,接收到事件触发后,配备渲染器切换转接工作。然后通过比较判定,当需要更新视图时完成渲染主调工作。同时也是其他模块调用当前图层的中介者,来将当前图层的相关信息返回给调用模块,完成调用模块与当前视图图层的交互任务。
渲染器:本系统中有多个渲染器,它们同时存放在一个队列中。每个渲染器都继承自同一个基类,拥有一些共同的方法和属性,但同时也有自己的扩展点。每个渲染器对应着一个图层种类,一个图层种类可能对应着一个或一个以上渲染器,但是一个渲染器有且仅能有相对应的一个图层种类。渲染器负责渲染工作以及图层和其他模块的数据转接工作,是通信模块和图层模块的桥接器。
图层管理类:主要是对地图上各图层进行统一管理的一个对象。各图层在初始化时向图层管理类进行注册,就可以通过图层管理类来获取各图层对象,调用其公开方法。渲染图层可以通过图层管理类来监控其他类型图层,从而决定渲染与否或渲染后是否可见。
覆盖物图层实例管理单元:根据用户需求添加覆盖物图层实例管理单元种类,此对象主要负责与地图之间的交互工作,根据条件向地图上添加覆盖物或删除覆盖物,实时更新覆盖物绑定信息与位置,对覆盖物进行本地存储与管理,处理订阅和取消订阅的最上层工作。区域渲染的粘合体,最终又回到了视图上,将整个流程折成环状。
地图:地图是本发明实现的载体,同时也是服务的终结者,一切工作的最终调用对象都是地图。通过调用地图对象的方法来实现覆盖物的呈现与销毁,在新信息到达时,进行图层更新。
当前视图对象:当前视图对象是地图对象的一部分,由地图级别来决定其大小,是在用户视觉范围内的那一部分,是实现本发明关键点的载体。通过当前视图界限与覆盖物位置来判定是否销毁地图已加载覆盖物,或是添加需显示而未加载的覆盖物。在本发明中,将实际中当前视图扩大四分之一作为当前视图。在销毁或添加时将当前视图扩大八分之一后作为当前视图。
覆盖物:图标,加载到地图上来代表某个现实中的具体实物,可以有图片也可以有文字。可以把它添加到地图某个对应位置,将其位置和地图上经纬度点进行绑定。
实施例1:当定时位置信息推送引发的图层信息变更时。
图1为一种地图覆盖物区域渲染方法一优选实施例的流程图,如图1所示,本实施例的方法可以包括:
图2为一种地图覆盖物区域渲染方法一优选实施例的序列图;
图4是本发明地图覆盖物区域渲染方法实施例一当前视图的示意图;
定时位置信息推送是通过客户端定时发送位置请求而引发的响应,此种情况和用户订阅操作相关,返回数据也和用户订阅信息相对应(排除未知信息,如若为未知信息,返回空数组),而和用户对地图操作无关。当新的定时订阅信息传来时,将根据信息对图层进行重新规整,更新,保持将最新信息在地图上进行可视化显示。
具体的
步骤1,用户通过操作订阅需求信息,此需求信息便是各覆盖物相关信息最初接收到客户端的形式。通信模块接收到后台推送过来的信息后,对其进行相应的处理转换,将数据保存到本地存储中,以便及时查取,减少后台交互次数与信息交互量。
步骤2,步骤1中转换后的信息在不同的需求下,被应用的场景有所不同,所以本发明中定义了一个分发器,将信息交由分发器处理,分发的其中一条线路便是位置信息渲染线路。此线路下信息会被传送给渲染器管理单元。
步骤3,查找合适渲染器。渲染器管理单元接收到信息后,先去渲染器循环链表中查找合适渲染的渲染器。第一个查找对象便是上一次使用的渲染器,如果是首次调用渲染器管理单元,则渲染器循环链表中的首个便是第一个查找对象。所有渲染器都共同继承了一个基类渲染器,基类渲染器规定了渲染器的基本任务与规范。渲染器管理单元通过对比推送消息或事件和渲染器的方法名,来找寻合适的渲染器进行渲染。查找按照循环链表顺序查找。渲染器管理单元找到符合条件的渲染器后将停止向下查找,待下一次渲染时从此位置向下继续查找。在循环链表的尾部有一个通用渲染器,通用渲染器条件宽泛或无条件渲染。如果其他渲染器都无法渲染的话,调用通用渲染器进行渲染。除通用渲染器外,每个渲染器都有相应的一个条件,这个条件是和地图缩放级别相关,可以根据不同的客户需求,定义不同的条件,添加不同的渲染器。根据本发明的搭建的框架,只需添加一个渲染器然后将其插进渲染器循环队列中,完成注册即可,不需改动原程序中代码,紧密附和了开闭原则,实现对扩展开放、对修改关闭。
步骤4,确定最终渲染信息,做渲染前调用准备工作。通过步骤3找到合适的渲染器后,渲染器管理单元首先判断该渲染器与上次渲染所用渲染器是否相同,因为每个渲染器有且仅能和一种渲染图层相对应,渲染器相同,则图层相同。图层相同则不需销毁当前图层然后添加新图层,完成图层的替换。如果是不同的渲染器,则要考虑图层的替换工作。替换工作的基础数据需由上一图层数据和接收到的数据做并集,共同组成最新一图层的渲染数据。上一图层将其图层信息传送给渲染器管理单元后,自行销毁本图层信息。渲染器管理单元将上一图层数据和接收到的数据做并集作为本次渲染的参数传给渲染器渲染方法。
步骤5,渲染器渲染调用图层展示。渲染器的渲染方法是调用其相对应图层的展示方法,将接收到的参数传给展示方法。
步骤6,当前图层范围界定。访问当前视图管理对象,获得当前视图的范围,将其范围扩大四分之一后作为要渲染的当前视图,此种方案较保险,防止较小幅度移动地图查看当前视图边缘覆盖物,其周边存在信息却无覆盖物添加到地图上,容易让用户产生错觉和误解。所以,为了达到更好的用户体验,同时也要保证达到发明目的,故用此方案。如图4所示,为当前视图做图示解义。
步骤7,遍历覆盖物信息并渲染到地图上。遍历步骤5传送的覆盖物相关信息。判定是及时订阅产生的响应还是定时订阅产生的响应,如果是即时订阅,则直接判定是否已被渲染,如果未被渲染,则初始化覆盖物,将其所对应信息的id保存到本地数组和当前视图数组中,同时将其信息保存到本地对象和当前视图对象中,以键值对的形式,键—值分别为信息id和覆盖物。同时将覆盖物保存到当前视图覆盖物数组中。如果已经被渲染,则根据最新信息更改覆盖物位置和其相关信息,并更新其在地图上的可视化图像。如果是定时订阅引发的响应,则再判定是否已被渲染后判定其位置是否在步骤6中所扩展的当前视图内,如果在,则执行和即时订阅此种情况相同处理,如果不在,则不将其保存在当前视图覆盖物数组中。如果已经被渲染,也要判定覆盖物是否在步骤6中所计算的扩展的当前视图范围内,如果在,则更新覆盖物位置和其相关信息,并更新其在地图上的可视化图像。如果不在,则更新覆盖物位置和其相关信息,将其从当前视图中销毁,并将其从当前视图对象和数组中删除。继续遍历,直到遍历结束。然后将当前视图覆盖物数组中的覆盖物批量添加到地图上,至此完成可视化图像的显示。由于本发明中不仅是展示覆盖物图像,同时也要绑定其相关信息,而相关信息又不能在渲染到地图上之前进行绑定,只能渲染到地图上,成为其上的一个图层之后才能进行绑定。基于此,而又考虑地图图层加载的效率,只能再进行一次遍历,然后执行绑定操作,实现信息绑定功能。至此,地图覆盖物渲染和覆盖物信息绑定已完成。本步骤实现流程如图3所示。
图3本发明地图覆盖物区域渲染方法实施例一步骤7的流程图;
详细描述一下步骤7:
覆盖物图层实例管理单元遍历覆盖物相关信息,对每个所述覆盖物的相关信息操作如下,
判断是即时订阅产生的响应还是定时订阅产生的响应;
如果是所述即时订阅,则判断是否已被渲染,
如果未被渲染,则先初始化所述覆盖物、将所述覆盖物信息id保存到本地存储数组中、将所述覆盖物信息id和所述覆盖物保存到本地存储对象中,将所述覆盖物保存到当前视图覆盖物数组中,
如果已被渲染,则更改所述覆盖物的位置和相关信息,更新所述覆盖物在地图上的可视化图像,
如果是所述定时订阅产生的响应,则判断是否已被渲染,
如果未被渲染,初始化所述覆盖物,将所述覆盖物信息id保存到本地存储数组中,将所述覆盖物信息id和所述覆盖物保存到本地存储对象中,再判断是否在当前视图的扩大图中
如果在,则将所述覆盖物保存到当前视图覆盖物数组中,
如果不在,则不进行任何操作,
如果已被渲染,则判断是否在当前视图的扩大图中,
如果在所述扩大图中,则更改所述覆盖物的位置和相关信息,更新所述覆盖物在地图上的可视化图像,并将所述覆盖物保存到当前视图覆盖物数组中;
如果不在所述扩大图中,则从当前视图上销毁次覆盖物,并将其从当前视图对象和数组中删除;
遍历所有所述覆盖物信息后,批量添加所述当前视图覆盖物数组中的覆盖物到地图上,再一次遍历所述当前视图覆盖物数组,对覆盖物相关信息进行绑定。
图4是本发明地图覆盖物区域渲染方法实施例一当前视图的示意图;
实施例2:当地图事件触发引发的视野图层界限变更
图5是本发明地图覆盖物区域渲染方法实施例二的流程图;
图6是本发明地图覆盖物区域渲染方法实施例二的序列图;
图7是本发明地图覆盖物区域渲染方法实施例二当前视图的示意图;
地图事件触发引发视图变更,第一种情况是当用户拖动地图,拖动距离超过当前视图的八分之一即触发本发明中定义的监听事件——地图移动事件。第二种情况是当用户放大缩小地图时,视图从经纬度上看,整个范围就会发生变化,在此范围内的覆盖物数量有可能发生变化,所以需要更新,即触发本发明中定义的监听事件——地图缩放级别改变事件。以上两种情况,都有一个延迟时间控制,当前后事件触发请求过于频繁时,只触发后者,前者不作处理,降低地图操作次数,提高效率,给予用户良好体验效果。
具体如下:
步骤1,当用户拖动地图使地图移动距离大于当前视图范围的八分之一时,如图7所示(此运算的单位是像素),将触发本发明中监听的地图移动事件。当用户放大缩小地图使地图级别改变时,将触发本发明中监听的地图缩放级别改变事件。以上两个事件,都设置了延迟触发操作,当前后事件触发请求过于频繁时,只触发后者,前者不作处理,降低地图操作次数,提高效率。
步骤2,渲染器管理单元监听到触发事件,将执行上种情况的步骤3操作。
步骤3,更新视图调用。找到合适的渲染器后,首先取到上一渲染器图层管理中保存到本地的覆盖物信息(此信息是当前覆盖物最新信息集合)。然后查看是否是相同渲染器,若渲染器不同,则销毁上一图层,执行步骤4操作。若渲染器相同,则直接执行步骤4操作。
步骤4,调用图层的视图更新操作。
步骤5,遍历覆盖物信息并过滤。图层对象类遍历接收到的覆盖物信息,将最新视图范围内的覆盖物和上一视图范围已加载覆盖物作交集处理,处在交集范围内的则不做任何处理,然后加载渲染位置在最新视图内的覆盖物,并将其信息添加到本地存储对象中,删除在变化前视图内而不在最新视图范围内的覆盖物,并将其信息从本地存储对象中去除。如表1所示,列举的是上一视图的覆盖物信息,如表2所示,列举的是当前视图内覆盖物信息,如表3所示,是合并处理后最终渲染结果。表1中的marker1和marker4存在于上一视图,而不在当前视图范围内,所以要将它们从地图上销毁,防止地图重绘时做无用功,降低地图负载。表2中的marker1和marker2是变动后视图新增的覆盖物点,所以要将其初始化并加到地图图层上。表1中的marker2和表2中的marker1,表1中的marker3和表2中的marker2相同,故不需做处理,减少工作量。
表1上一视图覆盖物信息
序号 | 名称 | Id | 位置 |
1 | Markera1 | M134 | (116.33,34.64) |
2 | Markera2 | M234 | (116.11,34.49) |
3 | Markera3 | M132 | (116.23,34.78) |
4 | Markera4 | M137 | (116.67,34.12) |
… | … | … | … |
表2当前视图要显示覆盖物信息
序号 | 名称 | Id | 位置 |
1 | Markerb1 | M234 | (116.11,34.49) |
2 | Markerb2 | M132 | (116.23,34.78) |
3 | Markerb3 | M222 | (116.71,34.48) |
4 | Markerb4 | M243 | (116.18,34.49) |
… | … | … | … |
表3合并处理最终渲染结果
序号 | 名称 | Id | 位置 | 操作 |
1 | Marker1 | M234 | (116.11,34.49) | 不作处理 |
2 | Marker2 | M132 | (116.23,34.78) | 不作处理 |
3 | Marker3 | M222 | (116.71,34.48) | 添加 |
4 | Marker4 | M243 | (116.18,34.49) | 添加 |
1 | Markera1 | M134 | (116.33,34.64) | 销毁 |
4 | Markera4 | M137 | (116.67,34.12) | 销毁 |
… | … | … | … | … |
本发明采用覆盖物动态加载渲染技术,通过定义焦点视图范围,来管理覆盖物的创建与销毁,可以实现内存与运算资源的合理分配利用。将浏览器视野范围外的无用覆盖物进行销毁,实现有目的的部分销毁,而不是统一全部销毁,减少系统中内存与CPU资源占用,同时也使系统的销毁更灵活。及时加载用户视野范围内未加载覆盖物,在降低消耗的同时保证提供给用户最真实的可视化信息。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种地图覆盖物区域渲染系统,包括地图,其特征在于,还包括渲染器管理单元、渲染器、覆盖物图层实例管理单元;所述渲染器分别与所述渲染器管理单元和所述覆盖物图层实例管理单元相连接,所述覆盖物图层实例管理单元还与所述地图相连接;
所述渲染器管理单元用于对所述渲染器进行管理,负责各渲染器调配;
所述渲染器用于对图层和/或覆盖物进行渲染;
所述覆盖物图层实例管理单元用于向地图上添加或删除所述覆盖物,更新覆盖物信息与位置,对覆盖物进行本地存储与管理。
2.如权利要求1所述的地图覆盖物区域渲染系统,其特征在于,所述地图覆盖物区域渲染系统还包括通信模块,当渲染事件由定时位置信息推送引发的涂层信息变更时,触发所述通信模块;所述通信模块接收到后台推送过来的信息后,对其进行相应的处理转换,将信息保存到本地存储中。
3.如权利要求1所述的地图覆盖物区域渲染系统,其特征在于,所述覆盖物是添加到地图中内容的统称;包括矢量图形元素、文字标注、图片、信息窗口。
4. 一种渲染器管理单元,包括:查找模块和切换模块,
所述查找模块用于寻找合适的渲染器;
所述切换模块用于切换渲染器和图层。
5.一种渲染器,包括转接模块和渲染模块,
所述转接模块,用于图层和不同地图API适配转换工作;
所述渲染模块,用于对图层及图层上覆盖物进行渲染。
6. 一种覆盖物图层实例管理单元,用于对覆盖物进行本地存储和管理,包括遍历模块、添加模块、更新模块和销毁模块,所述遍历模块分别与添加模块、更新模块和销毁模块相连接;
所述遍历模块,用于遍历所述覆盖物信息;
所述添加模块,将所述覆盖物添加到地图中;
所述更新模块,更新所述覆盖物的相关信息和所述覆盖物的可视化图像;
所述销毁模块,用于销毁所述覆盖物所述覆盖物的相关信息和所述覆盖物的可视化图像。
7. 一种地图覆盖物区域渲染方法,包括:
渲染器管理单元接收到通信模块推送的消息后和/或监听地图事件接收到事件触发后,通过对比推送消息或事件和渲染器的方法名,如果相同,则选用所述渲染器,如不同则切换下一个渲染器进行对比,直至找到合适的渲染器;
找到所述合适的渲染器后,先判断其与上次渲染所用渲染器是否相同,如果相同则不对图层进行处理,如果不同则销毁当前图层,添加新图层。
8.一种地图覆盖物区域渲染方法,包括:
被渲染器管理单元选中的渲染器,显示其相对应的图层的展示方法,将接收自所述渲染器管理单元的参数传送给覆盖物图层实例管理单元。
9. 一种地图覆盖物区域渲染方法,包括:
覆盖物图层实例管理单元遍历覆盖物相关信息,对每个所述覆盖物的相关信息操作如下,
判断是即时订阅产生的响应还是定时订阅产生的响应;
如果是所述即时订阅,则判断是否已被渲染,
如果未被渲染,则先初始化所述覆盖物、将所述覆盖物信息id保存到本地存储数组中、将所述覆盖物信息id和所述覆盖物保存到本地存储对象中,将所述覆盖物保存到当前视图覆盖物数组中,
如果已被渲染,则更改所述覆盖物的位置和相关信息,更新所述覆盖物在地图上的可视化图像,
如果是所述定时订阅产生的响应,则判断覆盖物是否已被渲染,
如果未被渲染,初始化所述覆盖物,将所述覆盖物信息id保存到本地存储数组中,将所述覆盖物信息id和所述覆盖物保存到本地存储对象中,再判断所述覆盖物是否在当前视图的扩大图中
如果在,则将所述覆盖物保存到当前视图覆盖物数组中,
如果不在,则不进行任何操作;
如果已被渲染,-则判断是否在当前视图的扩大图中,
如果在所述扩大图中,则更改所述覆盖物的位置和相关信息,更新所述覆盖物在地图上的可视化图像,并将所述覆盖物保存到当前视图覆盖物数组中,
如果不在所述扩大图中,则从当前视图上中销毁此覆盖物,并将其从当前视图对象和数组中删除;
遍历所有所述覆盖物信息后,批量添加所述当前视图覆盖物数组中的覆盖物到地图上,再一次遍历所述当前视图覆盖物数组,对覆盖物相关信息进行绑定。
10.如权利要求9所述的一种地图覆盖物区域渲染方法,其特征在于,将所述覆盖物信息id和所述覆盖物保存到本地存储对象中的保存形式为键值对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410842652.XA CN104504106B (zh) | 2014-12-04 | 2014-12-30 | 一种地图覆盖物区域渲染方法及相关设备 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2014107272755 | 2014-12-04 | ||
CN201410727275 | 2014-12-04 | ||
CN201410842652.XA CN104504106B (zh) | 2014-12-04 | 2014-12-30 | 一种地图覆盖物区域渲染方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104504106A true CN104504106A (zh) | 2015-04-08 |
CN104504106B CN104504106B (zh) | 2018-05-15 |
Family
ID=52945501
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410842652.XA Active CN104504106B (zh) | 2014-12-04 | 2014-12-30 | 一种地图覆盖物区域渲染方法及相关设备 |
CN201410840774.5A Active CN104504103B (zh) | 2014-12-04 | 2014-12-30 | 一种车辆轨迹点插入性能优化方法及系统、信息采集器、数据库模型 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410840774.5A Active CN104504103B (zh) | 2014-12-04 | 2014-12-30 | 一种车辆轨迹点插入性能优化方法及系统、信息采集器、数据库模型 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN104504106B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106855881A (zh) * | 2016-12-16 | 2017-06-16 | 北京奇鱼时代科技有限公司 | 一种基于移动设备的多地图切换的方法和装置 |
CN106886586A (zh) * | 2017-02-16 | 2017-06-23 | 北京大地图科技有限公司 | 一种基于开源项目的互联网地图应用开发平台 |
CN107875630A (zh) * | 2017-11-17 | 2018-04-06 | 杭州电魂网络科技股份有限公司 | 渲染区域确定方法及装置 |
CN111091606A (zh) * | 2020-03-23 | 2020-05-01 | 杭州有数金融信息服务有限公司 | 基于地图覆盖物渐变的解决方法 |
CN112395375A (zh) * | 2019-08-15 | 2021-02-23 | 中移(苏州)软件技术有限公司 | 一种地图呈现方法及终端、计算机可读存储介质 |
CN112434117A (zh) * | 2020-11-05 | 2021-03-02 | 广州和辰信息科技有限公司 | 一种基于Vue的WebGIS的可视化配置方法和系统 |
CN112863318A (zh) * | 2021-02-04 | 2021-05-28 | 北京高因科技有限公司 | 一种纸质地图中的拖拽及连线方法、电子设备、存储介质 |
CN117330055A (zh) * | 2023-11-30 | 2024-01-02 | 棱镜数聚(北京)信息技术有限公司 | 一种高清地图的生成方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765125B (zh) * | 2018-07-25 | 2022-09-20 | 杭州海康威视数字技术股份有限公司 | 一种存储数据的方法及装置 |
EP4293518A4 (en) * | 2021-03-25 | 2024-04-24 | Huawei Tech Co Ltd | TEST SYSTEM, VEHICLE SIMULATION APPARATUS, TEST APPARATUS AND TEST METHOD |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080148160A1 (en) * | 2006-12-19 | 2008-06-19 | Holmes Carolyn J | Bitmap based application sharing accessibility framework |
CN101771681A (zh) * | 2008-12-30 | 2010-07-07 | 北大方正集团有限公司 | 一种页面显示控制方法、服务器及系统 |
US20120323992A1 (en) * | 2011-06-20 | 2012-12-20 | International Business Machines Corporation | Geospatial visualization performance improvement for contiguous polylines with similar dynamic characteristics |
CN103035164A (zh) * | 2012-12-24 | 2013-04-10 | 广东威创视讯科技股份有限公司 | 一种地理信息系统渲染方法及系统 |
CN103187003A (zh) * | 2011-12-31 | 2013-07-03 | 北京图盟科技有限公司 | 一种电子地图的访问方法、设备和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892285B1 (en) * | 2002-04-30 | 2005-05-10 | Cisco Technology, Inc. | System and method for operating a packet buffer |
WO2008130219A1 (en) * | 2007-04-19 | 2008-10-30 | Tele Atlas B.V. | Method of and apparatus for producing road information |
CN101859298A (zh) * | 2009-04-08 | 2010-10-13 | 北京博越世纪科技有限公司 | 一项高效的数据库存储数据技术 |
CN103473540B (zh) * | 2013-09-11 | 2016-06-22 | 天津工业大学 | 智能交通系统车辆轨迹增量式建模与在线异常检测方法 |
-
2014
- 2014-12-30 CN CN201410842652.XA patent/CN104504106B/zh active Active
- 2014-12-30 CN CN201410840774.5A patent/CN104504103B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080148160A1 (en) * | 2006-12-19 | 2008-06-19 | Holmes Carolyn J | Bitmap based application sharing accessibility framework |
CN101771681A (zh) * | 2008-12-30 | 2010-07-07 | 北大方正集团有限公司 | 一种页面显示控制方法、服务器及系统 |
US20120323992A1 (en) * | 2011-06-20 | 2012-12-20 | International Business Machines Corporation | Geospatial visualization performance improvement for contiguous polylines with similar dynamic characteristics |
CN103187003A (zh) * | 2011-12-31 | 2013-07-03 | 北京图盟科技有限公司 | 一种电子地图的访问方法、设备和系统 |
CN103035164A (zh) * | 2012-12-24 | 2013-04-10 | 广东威创视讯科技股份有限公司 | 一种地理信息系统渲染方法及系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106855881A (zh) * | 2016-12-16 | 2017-06-16 | 北京奇鱼时代科技有限公司 | 一种基于移动设备的多地图切换的方法和装置 |
CN106855881B (zh) * | 2016-12-16 | 2021-01-08 | 北京奇鱼时代科技有限公司 | 一种基于移动设备的多地图切换的方法和装置 |
CN106886586A (zh) * | 2017-02-16 | 2017-06-23 | 北京大地图科技有限公司 | 一种基于开源项目的互联网地图应用开发平台 |
CN107875630A (zh) * | 2017-11-17 | 2018-04-06 | 杭州电魂网络科技股份有限公司 | 渲染区域确定方法及装置 |
CN107875630B (zh) * | 2017-11-17 | 2020-11-24 | 杭州电魂网络科技股份有限公司 | 渲染区域确定方法及装置 |
CN112395375A (zh) * | 2019-08-15 | 2021-02-23 | 中移(苏州)软件技术有限公司 | 一种地图呈现方法及终端、计算机可读存储介质 |
CN112395375B (zh) * | 2019-08-15 | 2023-08-01 | 中移(苏州)软件技术有限公司 | 一种地图呈现方法及终端、计算机可读存储介质 |
CN111091606A (zh) * | 2020-03-23 | 2020-05-01 | 杭州有数金融信息服务有限公司 | 基于地图覆盖物渐变的解决方法 |
CN112434117A (zh) * | 2020-11-05 | 2021-03-02 | 广州和辰信息科技有限公司 | 一种基于Vue的WebGIS的可视化配置方法和系统 |
CN112863318A (zh) * | 2021-02-04 | 2021-05-28 | 北京高因科技有限公司 | 一种纸质地图中的拖拽及连线方法、电子设备、存储介质 |
CN117330055A (zh) * | 2023-11-30 | 2024-01-02 | 棱镜数聚(北京)信息技术有限公司 | 一种高清地图的生成方法 |
CN117330055B (zh) * | 2023-11-30 | 2024-05-28 | 棱镜数聚(北京)信息技术有限公司 | 一种高清地图的生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104504106B (zh) | 2018-05-15 |
CN104504103B (zh) | 2018-05-15 |
CN104504103A (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104504106A (zh) | 一种地图覆盖物区域渲染方法及相关设备 | |
CN113268226B (zh) | 页面数据生成方法、装置、存储介质及设备 | |
CN110910203A (zh) | 一种商品页面的内容展示方法及装置 | |
CN105760038A (zh) | 一种多窗口显示方法及装置 | |
CN111143039B (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN109309858B (zh) | 一种互斥图标的显示方法、装置、设备及介质 | |
CN112090066B (zh) | 基于虚拟交互应用的场景展示方法和装置 | |
CN111381976B (zh) | 消息提示数据的更新方法、装置、存储介质及计算机设备 | |
CN104754040B (zh) | 用于端到端云服务虚拟化的系统 | |
CN105718291B (zh) | 一种混合桌面应用的多级缓存加速方法 | |
CN108269045A (zh) | 一种基于大数据的仓库补货系统 | |
CN115361382A (zh) | 基于数据群组的数据处理方法、装置、设备和存储介质 | |
CN109407922B (zh) | 一种图标显示的控制方法、装置、设备及介质 | |
US20210182789A1 (en) | Determination of business coverage area | |
CN110290171A (zh) | 一种数据管理方法及装置、电子设备 | |
CN111274042A (zh) | 一种fpga异构加速系统及其同步调度方法和相关设备 | |
CN116257719B (zh) | 页面更新方法、装置、计算机设备和存储介质 | |
CN107168685B (zh) | 更新脚本的方法及装置、计算机终端 | |
CN112860454B (zh) | 业务处理系统及方法 | |
CN110908745A (zh) | 数据分析展示方法及系统、存储介质、服务器及客户端 | |
CN112966188B (zh) | 收藏商品状态更新方法及其装置、设备与介质 | |
CN111198740B (zh) | 图形用户界面的处理方法、装置、设备和存储介质 | |
CN112311581B (zh) | 会议终端批量管理系统、方法、装置、设备及存储介质 | |
CN111800481B (zh) | 基于互联网的网络互动方法、装置及服务器 | |
CN113467956A (zh) | 一种节点资源管理方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 050021 No. 220 Tsing Yuen Street, Shijiazhuang, Hebei Patentee after: China Mobile System Integration Co., Ltd Address before: 050021 No. 220 Tsing Yuen Street, Shijiazhuang, Hebei Patentee before: CHINA MOBILE QUANTONG SYSTEM INTEGRATION Co.,Ltd. |