CN109710716A - 地图流畅渲染方法、终端设备及计算机可读存储介质 - Google Patents

地图流畅渲染方法、终端设备及计算机可读存储介质 Download PDF

Info

Publication number
CN109710716A
CN109710716A CN201811582786.7A CN201811582786A CN109710716A CN 109710716 A CN109710716 A CN 109710716A CN 201811582786 A CN201811582786 A CN 201811582786A CN 109710716 A CN109710716 A CN 109710716A
Authority
CN
China
Prior art keywords
data
thread
request
map
workable
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.)
Pending
Application number
CN201811582786.7A
Other languages
English (en)
Inventor
黄永
戴春兰
曾超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Sefon Software Co Ltd
Original Assignee
Chengdu Sefon Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Sefon Software Co Ltd filed Critical Chengdu Sefon Software Co Ltd
Priority to CN201811582786.7A priority Critical patent/CN109710716A/zh
Publication of CN109710716A publication Critical patent/CN109710716A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种地图流畅渲染方法、终端设备及计算机可读存储介质,该方法包括:创建多个线程;在所述多个线程中选择可使用的线程,通过该可使用的线程发送来自浏览器主线程的数据请求;根据所述数据请求加载对应的所有数据并缓存;将所述数据请求对应的缓存数据以预定的长度进行分块得到分块数据;将所述分块数据通过可使用的线程推送到所述浏览器主线程以使所述浏览器主线程根据所述分块数据对地图进行渲染。本发明可以多任务并发执行,数据请求和地图交互及数据分块均可同时进行处理,提高执行速度、不阻塞浏览器主线程,提升流畅度,有效控制数据量较大导致的渲染卡住的情况。

Description

地图流畅渲染方法、终端设备及计算机可读存储介质
技术领域
本发明涉及地图渲染技术领域,具体而言,涉及一种地图流畅渲染方法、终端设备及计算机可读存储介质。
背景技术
随着互联网的发展,地图在web端的应用越来越广泛受欢迎,普通的点线面绘制已经不能满足现在的要求,如果数据量变得很庞大,当用户对地图交互的时候,会明显的卡顿,十分不流畅,甚至会严重影响整个页面的渲染性能,严重的时候会出现内存不足浏览器崩溃。
地图在渲染方面已经有很多优化解决方案,类似于服务端渲染并切片,聚合处理等,但都有一定的限制,比如切片交互能力差,聚合已经改变了原本的要素渲染方式,很多时候并不能真正的体现出业务含义。
发明内容
鉴于上述问题,本发明实施例的目的在于提供一种地图流畅渲染方法、终端设备及计算机可读存储介质,以解决现有技术的不足。
根据本发明的一个实施方式,提供一种地图流畅渲染方法,包括:
创建多个线程;
在所述多个线程中选择可使用的线程,通过该可使用的线程发送来自浏览器主线程的数据请求;
根据所述数据请求加载对应的所有数据并缓存;
将所述数据请求对应的缓存数据以预定的长度进行分块得到分块数据;
将所述分块数据通过可使用的线程推送到所述浏览器主线程以使所述浏览器主线程根据所述分块数据对地图进行渲染。
在上述的地图流畅渲染方法中,所述多个线程中的各个线程包括状态位,在初始创建时,所述线程的状态位为零;
在所述各个线程中执行任务时,将所述状态位的值加一,及在所述任务结束后,将所述状态位的值减一;
所述“在所述多个线程中选择可使用的线程”包括:
获取所述状态位为零的所有线程,并在所述状态位为零的所有线程中选取其中一个作为可使用的线程。
在上述的地图流畅渲染方法中,所述多个线程共享缓存的数据。
在上述的地图流畅渲染方法中,所述“根据所述数据请求加载对应的所有数据并缓存”之前还包括:
根据所述数据请求判断是否缓存有该数据请求对应可视范围的所有数据;
若缓存有该数据请求对应可视范围的所有数据,直接执行所述分块和所述推送;
若缓存有该数据请求对应可视范围的部分数据,加载该所有数据中除去该部分数据后其他剩余数据并缓存;
若没有缓存有该数据请求对应可视范围的所有数据,加载该所有数据并缓存。
在上述的地图流畅渲染方法中,将所述分块数据组成数据队列;
所述“将所述分块数据通过可使用的线程推送到浏览器主线程以使所述浏览器主线程根据所述分块数据对地图进行渲染”包括:
将所述分块数据按照所述数据队列的顺序通过可使用的线程推送到所述浏览器主线程,以使所述浏览器主线程每接收到一个所述分块数据均根据接收的分块数据对地图进行渲染。
在上述的地图流畅渲染方法中,还包括:
在所述分块数据推送完成后,删除缓存的该分块数据。
在上述的地图流畅渲染方法中,还包括:
在删除地图的图层时,通过可使用的线程发送图层删除指令;
根据所述图层删除指令删除该图层对应的所有缓存数据。
在上述的地图流畅渲染方法中,还包括:
在接收到新的数据请求后,判断所述新的数据请求与正在执行的数据请求的服务接口是否一致;
若所述新的数据请求与正在执行的数据请求的服务接口一致,通过可使用的线程发送阻断指令,根据该阻断指令停止推送所述正在执行的数据请求对应的分块数据,并通过可使用的线程发送所述新的数据请求对应的数据推送指令,根据所述数据推送指令加载所述新的数据请求对应的可视范围的所有数据并缓存,将缓存的所述新的数据请求对应的所有数据进行分组并推送到浏览器主线程;
若所述新的数据请求与正在执行的数据请求的服务接口不一致,继续推送所述正在执行的数据请求对应的分块数据至所述浏览器主线程。
根据本发明的另一个实施方式,提供一种地图流畅渲染装置,该装置包括:
创建模块,用于创建多个线程;
选择发送模块,用于在所述多个线程中选择可使用的线程,通过该可使用的线程发送来自浏览器主线程的数据请求;
加载缓存模块,用于根据所述数据请求加载对应的所有数据并缓存;
分块模块,用于将所述数据请求对应的缓存数据以预定的长度进行分块得到分块数据;
推送模块,用于将所述分块数据通过可使用的线程推送到所述浏览器主线程以使所述浏览器主线程根据所述分块数据对地图进行渲染。
根据本发明的再一个实施方式,提供一种终端设备,所述终端设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备执行上述的地图流畅渲染方法。
根据本发明的又一个实施方式,提供一种计算机可读存储介质,其存储有所述终端设备中所用的所述计算机程序。
本公开的实施例提供的技术方案可以包括如下有益效果:
本发明中一种地图流畅渲染方法、终端设备及计算机可读存储介质,创建多线程,可以多任务并发执行,相比于单线程来说,任务执行速度有很大的提升;数据请求和地图交互及处理部分均可同时独立进行处理,提高执行速度、不阻塞浏览器主线程,提升流畅度;对缓存数据进行分块处理,渲染时每一次绘制的数据量并不大,有效控制数据量较大导致的渲染卡住的情况。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明第一实施例提供的一种地图流畅渲染方法的流程示意图。
图2示出了本发明实施例提供的一种地图流畅渲染过程的交互示意图。
图3示出了本发明第二实施例提供的一种地图流畅渲染方法的流程示意图。
图4示出了本发明第三实施例提供的一种地图流畅渲染方法的流程示意图。
图5示出了本发明实施例提供的一种地图流畅渲染装置的结构示意图。
主要元件符号说明:
500-地图流畅渲染装置;510-创建模块;520-选择发送模块;530-加载缓存模块;540-分块模块;550-推送模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1示出了本发明第一实施例提供的一种地图流畅渲染方法的流程示意图。
该地图流畅渲染方法包括以下步骤:
在步骤S110中,创建多个线程。
具体地,在浏览器进程中创建线程池,该线程池包括多个线程,为了并发执行多个任务,任务代码必须有储存位置,创建线程的即创建了存储位置,执行的任务代码即存储在创建的存储位置处。若将浏览器进程视为一个类,在该类中创建多个子类对象,也就是在创建多个线程,每个线程内部功能相同,但是各自是异步地,具备同一时间各自处理不同任务的功能,提高web端并发任务处理能力。
本方案中,任务代码即处理浏览器主线程和创建的多个线程之间的指令通信机制的代码。将浏览器主线程、创建的多个线程及针对指令进行处理数据操作分离开来,创建的多个线程作为中间层管理器,主要任务是处理接收任务指令和分发任务结果,在任务调度的时候能尽快地提高任务响应速度,也就是并发执行能力,不阻塞浏览器主线程渲染的能力。
在步骤S120中,在多个线程中选择可使用的线程,通过该可使用的线程发送来自浏览器主线程的数据请求。
进一步地,所述多个线程中的每一线程均包括状态位,在初始创建该线程时,将所述线程的状态位设置为零,在所述线程中执行任务时,将该线程的状态位的值加一,在所述线程中正在执行的任务结束时,将该线程的状态位的值减一。在线程由空闲转向执行任务时,线程中状态位的值由零变为一,在线程由执行任务转向空闲时,线程中状态位的值由一变为零,即可保证线程在执行任务时,状态位的值为一,在结束任务或空闲时,状态位的值为零。
进一步地,所述“在多个线程中选择可使用的线程”包括:
获取所述状态位为零的所有线程,并在所述状态位为零的所有线程中选取其中一个作为可使用的线程。
具体地,获取该多个线程中所有状态位为零的线程,即该状态位为零的线程可以被使用。
在该所有状态位为零的线程中,选取其中一个线程作为可使用的线程。
其中,该选取其中一个线程可以为从获取的所有状态位为零的线程中选取第一个线程作为可使用的线程,还可以为从获取的所有状态位为零的线程中随机选取一个线程作为可使用的线程。
浏览器主线程向该线程池发送数据加载指令,线程池中选取可使用的线程后,通过该可使用的线程向处理部分发送包括来自浏览器主线程的数据加载指令的数据请求。
其中,该数据请求包括发送该数据请求的服务接口、可视范围、图层ID及其他数据等。
在步骤S130中,根据数据请求加载对应的所有数据并缓存。
具体地,在处理部分,根据该数据请求中的可视范围及图层ID加载该可视范围内的所有图层对应的所有数据,并将该加载的所有数据进行缓存。
进一步地,线程池中所有线程均可共享该缓存的数据,均可使用可缓存的数据。减少处理部分反复加载相同的数据,减少处理部分的加载任务量,提高算法响应能力。
在步骤S140中,将数据请求对应的缓存数据以预定的长度进行分块得到分块数据。
具体地,将上述针对该数据请求缓存的所有数据根据预定的长度进行分块,其中,将该分块的数据根据浏览器主线程、线程池及处理部分的通信协议进行打包成数据包,将分块的数据放在数据包的数据(Data)部分。
其中,该预定的长度可以根据浏览器主线程的处理能力而定。
在步骤S150中,将分块数据通过可使用的线程推送到浏览器主线程以使浏览器主线程根据分块数据对地图进行渲染。
进一步地,将分块的数据按照顺序组成数据队列。
所述“将所述分块数据通过可使用的线程推送到浏览器主线程以使所述浏览器主线程根据所述分块数据对地图进行渲染”包括:
将所述分块数据按照所述数据队列的顺序通过可使用的线程推送到所述浏览器主线程,以使所述浏览器主线程每接收到一个所述分块数据均根据接收的分块数据对地图进行渲染。
具体地,将分块数据按照所述数据队列的顺序依次发送到线程池,线程池选择一个可使用的线程,将接收到的分块数据的数据包依次发送至浏览器主线程。浏览器主线程每接收到一个分块数据的数据包后,均立即对该数据包进行解析,获取分块数据,根据该分块数据对地图进行渲染。
如图2所示为本发明实施例提供的一种地图流畅渲染过程的交互示意图。
该地图流畅渲染过程的交互过程分为以下几个步骤:
第一步:创建多个线程。
线程池在浏览器所在进程中创建多个线程。
第二步:发送数据请求。
浏览器主线程发送数据请求至线程池。
第三步,选择可使用的线程。
线程池在该多个线程中选择一个可使用的线程。
第四步:线程池通过该可使用的线程发送数据请求。
第五步:处理部分接收到该数据请求后,加载该数据请求对应的所有数据并缓存。
第六步:处理部分将缓存的数据进行分块。
其中,所述分块的比例可以根据浏览器主线程的处理能力而定,即浏览器主线程一次最多可处理多少数据,并不会造成浏览器主线程阻塞。
第七步:处理部分将分块数据推送到浏览器主线程。
具体地,处理部分首先将分块数据推送到线程池,线程池再将分块数据推送到浏览器主线程。
第八步,线程池选择可使用的线程。
第九步:线程池将接收的分块数据通过该使用的线程推送分块数据。
第十步:浏览器主线程接收分块数据。
第十一步:浏览器主线程根据接收的分块数据对地图进行渲染。
实施例2
图3示出了本发明第二实施例提供的一种地图流畅渲染方法的流程示意图。
该地图流畅渲染方法包括以下步骤:
在步骤S210中,创建多个线程。
与步骤S110相同,在此不再赘述。
在步骤S220中,在多个线程中选择可使用的线程,通过该可使用的线程发送来自浏览器主线程的数据请求。
与步骤S120相同,在此不再赘述。
在步骤S230中,判断是否缓存有该数据请求对应可视范围的所有数据。
在接收到来自浏览器主线程的数据请求后,首先判断处理部分是否存储有该数据请求对应可视范围的所有数据。
若处理部分未存储该数据请求对应可视范围的所有数据,前进至步骤S240;若处理部分存储有该数据请求对应可视范围的所有数据,前进至步骤S260;若处理部分存储有该数据请求对应可视范围的部分数据,前进至步骤S250。
在步骤S240中,根据数据请求加载对应的所有数据并缓存。
在处理部分未存储该数据请求对应可视范围的所有数据,处理部分立即根据该数据请求加载该数据请求对应可视范围的所有数据。
在步骤S250中,加载该所有数据中除该部分数据后其他剩余数据并缓存。
为了减少处理部分的加载任务量,提高处理速度,在处理部分已经存储有该数据请求对应可视范围的部分数据后,加载该数据请求对应可视范围的所有数据中除去该已存储的部分数据后其他剩余数据,并将加载的数据进行缓存。
例如,该数据请求对应可视范围的所有数据的为S,大小为A,处理部分已经存储有该数据请求对应可视范围的部分数据S1,大小为A1,那么,处理部分可仅仅下载S-S1部分的数据,其大小为A-A1。
在步骤S260中,将数据请求对应的缓存数据以预定的长度进行分块得到分块数据。
与步骤S140相同,在此不再赘述。
在步骤S270中,将分块数据通过可使用的线程推送到浏览器主线程以使浏览器主线程根据分块数据对地图进行渲染。
与步骤S150相同,在此不再赘述。
在步骤S280中,在分块数据推送完成后,删除缓存的该分块数据。
具体地,为了减少处理部分的存储空间的占用率,提高利用率及响应速度,在分块数据每推送完成一个分块数据后,删除该分块数据对应的缓存,使处理部分有充分的空间缓存其他数据请求对应的数据。
在步骤S290中,在删除地图的图层时,通过可使用的线程发送图层删除指令。
在步骤S300中,根据图层删除指令删除该图层对应的所有缓存数据。
地图可包括多个图层,每一个图层中具有一定数量的像素点,每一图层中的像素点均为不同的像素点,分别对地图中的每一图层中的像素点进行渲染,所有图层中所有像素点结合起来形成该地图的可视化界面。
具体地,同样为了减少处理部分的存储空间的占用率,提高利用率及响应速度,在浏览器主线程删除地图的图层时,向线程池发送图层删除命令,该线程池选择一个可使用的线程将该浏览器主线程发送的图层删除命令发送至处理部分,处理部分接收到该图层删除命令后,根据图层ID判断是否还缓存有该图层ID对应的数据,若有该图层ID对应的数据,则删除该图层ID对应的所有数据。
实施例3
图4示出了本发明第三实施例提供的一种地图流畅渲染方法的流程示意图。
该地图流畅渲染方法包括如下步骤:
在步骤S310中,创建多个线程。
与步骤S110相同,在此不再赘述。
在步骤S320中,在多个线程中选择可使用的线程,通过该可使用的线程发送来自浏览器主线程的数据请求。
与步骤S120相同,在此不再赘述。
在步骤S330中,根据数据请求加载对应的所有数据并缓存。
与步骤S130相同,在此不再赘述。
在步骤S340中,将数据请求对应的缓存数据以预定的长度进行分块得到分块数据。
与步骤S140相同,在此不再赘述。
在步骤S350中,将分块数据通过可使用的线程推送到浏览器主线程以使浏览器主线程根据分块数据对地图进行渲染。
与步骤S150相同,在此不再赘述。
在步骤S360中,判断新的数据请求与正在执行的数据请求的服务接口是否一致。
线程池在接收到新的数据请求后,判断发送新的数据请求的服务接口与正在执行的数据请求的服务接口是否一致,若发送新的数据请求的服务接口与正在执行的数据请求的服务接口一致,前进至步骤S370;若发送新的数据请求的服务接口与正在执行的数据请求的服务接口不一致,前进至步骤S390。
在步骤S370中,通过可使用的线程发送阻断指令根据该阻断指令停止推送正在执行的数据请求对应的分块数据,通过可使用的线程发送新的数据请求对应的数据推送指令。
例如,在对当前的地图进行放大或缩小时,若对地图进行放大或缩小的数据请求为新的数据请求,那么,发送新的数据请求的服务接口与正在执行的数据请求的服务接口一致。
线程池通过可使用的线程发送阻断指令至处理部分,处理部分根据该阻断指令停止推送该正在执行的数据请求对应的分块数据。
线程池同时通过该可使用的线程发送新的数据请求对应的数据推送指令至处理部分,使处理部分推送该新的数据请求对应的所有数据,进而使浏览器主线程停止当前正在执行的任务,转而去执行新的任务。
在步骤S380中,根据数据推送指令加载新的数据请求对应的可视范围的所有数据并缓存,将缓存的新的数据请求对应的所有数据进行分组并推送到浏览器主线程。
处理部分根据推送指令加载新的数据请求对应可视范围的所有数据并缓存,并将缓存的新的数据请求对应的所有数据进行分块得到分块数据,并该分块数据依次推送到线程池,线程池通过可使用的线程依次将该分块数据推送到浏览器主线程。
进一步地,处理部分还可以先判断是否已经存储有该推送指令对应的数据,若处理部分存储有该推送指令对应的全部数据,不进行加载操作,直接将已存储的改推送指令对应的全部数据通过可使用的线程推送到浏览器主线程;若处理部分存储有该推送指令对应的部分数据,加载该推送指令对应的所有数据中除去部分数据之外的其他数据,并将加载的其他数据及已缓存的部分数据进行分块,将分块数据依次通过可使用的线程推送到浏览器主线程;若处理部分未存储有该推送指令对应的所有数据,处理部分加载该推送指令对应的所有数据并缓存,并将缓存的数据进行分块得到分块数据,将分块数据依次通过可使用的线程推送到浏览器主线程。
在步骤S390中,继续推送正在执行的数据请求对应的分块数据至浏览器主线程。
在发送新的数据请求的服务接口与正在执行的数据请求的服务接口不一致时,继续执行正在执行的数据请求,直至该正在执行的数据请求结束后,才接着执行该正在执行的数据请求之后下一个新的数据请求。
实施例4
图5示出了本发明实施例提供的一种地图流畅渲染装置的结构示意图。该地图流畅渲染装置500对应于实施例1中的地图流畅渲染方法,实施例1中的地图流畅渲染方法同样也适用于该地图流畅渲染装置500,在此不再赘述。
所述地图流畅渲染装置500包括创建模块510、选择发送模块520、加载缓存模块530、分块模块540及推送模块550。
创建模块510,用于创建多个线程。
选择发送模块520,用于在所述多个线程中选择可使用的线程,通过该可使用的线程发送来自浏览器主线程的数据请求。
加载缓存模块530,用于根据所述数据请求加载对应的所有数据并缓存。
分块模块540,用于将所述数据请求对应的缓存数据以预定的长度进行分块得到分块数据。
推送模块550,用于将所述分块数据通过可使用的线程推送到所述浏览器主线程以使所述浏览器主线程根据所述分块数据对地图进行渲染。
本发明另一实施例还提供了一种终端设备,所述终端设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备执行上述的地图流畅渲染方法或上述的地图流畅渲染装置中各模块的功能。
存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
该终端设备可以为计算机终端(台式电脑、服务器等),还可以为移动终端(手机、平板的电脑、笔记本电脑等)。
本实施例还提供了一种计算机可读存储介质,用于储存上述的终端设备中所使用的地图流畅渲染方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种地图流畅渲染方法,其特征在于,包括:
创建多个线程;
在所述多个线程中选择可使用的线程,通过该可使用的线程发送来自浏览器主线程的数据请求;
根据所述数据请求加载对应的所有数据并缓存;
将所述数据请求对应的缓存数据以预定的长度进行分块得到分块数据;
将所述分块数据通过可使用的线程推送到所述浏览器主线程以使所述浏览器主线程根据所述分块数据对地图进行渲染。
2.根据权利要求1所述的地图流畅渲染方法,其特征在于,所述多个线程中的各个线程包括状态位,在初始创建时,所述线程的状态位为零;
在所述各个线程中执行任务时,将所述状态位的值加一,及在所述任务结束后,将所述状态位的值减一;
所述“在所述多个线程中选择可使用的线程”包括:
获取所述状态位为零的所有线程,并在所述状态位为零的所有线程中选取其中一个作为可使用的线程。
3.根据权利要求1所述的地图流畅渲染方法,其特征在于,所述多个线程共享缓存的数据。
4.根据权利要求1所述的地图流畅渲染方法,其特征在于,所述“根据所述数据请求加载对应的所有数据并缓存”之前还包括:
根据所述数据请求判断是否缓存有该数据请求对应可视范围的所有数据;
若缓存有该数据请求对应可视范围的所有数据,直接执行所述分块和所述推送;
若缓存有该数据请求对应可视范围的部分数据,加载该所有数据中除去该部分数据后其他剩余数据并缓存;
若没有缓存有该数据请求对应可视范围的所有数据,加载该所有数据并缓存。
5.根据权利要求1所述的地图流畅渲染方法,其特征在于,将所述分块数据组成数据队列;
所述“将所述分块数据通过可使用的线程推送到浏览器主线程以使所述浏览器主线程根据所述分块数据对地图进行渲染”包括:
将所述分块数据按照所述数据队列的顺序通过可使用的线程推送到所述浏览器主线程,以使所述浏览器主线程每接收到一个所述分块数据均根据接收的分块数据对地图进行渲染。
6.根据权利要求1所述的地图流畅渲染方法,其特征在于,还包括:
在所述分块数据推送完成后,删除缓存的该分块数据。
7.根据权利要求1所述的地图流畅渲染方法,其特征在于,还包括:
在删除地图的图层时,通过可使用的线程发送图层删除指令;
根据所述图层删除指令删除该图层对应的所有缓存数据。
8.根据权利要求1所述的地图流畅渲染方法,其特征在于,还包括:
在接收到新的数据请求后,判断所述新的数据请求与正在执行的数据请求的服务接口是否一致;
若所述新的数据请求与正在执行的数据请求的服务接口一致,通过可使用的线程发送阻断指令,根据该阻断指令停止推送所述正在执行的数据请求对应的分块数据,并通过可使用的线程发送所述新的数据请求对应的数据推送指令,根据所述数据推送指令加载所述新的数据请求对应的可视范围的所有数据并缓存,将缓存的所述新的数据请求对应的所有数据进行分组并推送到浏览器主线程;
若所述新的数据请求与正在执行的数据请求的服务接口不一致,继续推送所述正在执行的数据请求对应的分块数据至所述浏览器主线程。
9.一种终端设备,其特征在于,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备执行权利要求1至8任一项所述的地图流畅渲染方法。
10.一种计算机可读存储介质,其特征在于,其储存有权利要求9所述终端设备中所用的所述计算机程序。
CN201811582786.7A 2018-12-24 2018-12-24 地图流畅渲染方法、终端设备及计算机可读存储介质 Pending CN109710716A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811582786.7A CN109710716A (zh) 2018-12-24 2018-12-24 地图流畅渲染方法、终端设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811582786.7A CN109710716A (zh) 2018-12-24 2018-12-24 地图流畅渲染方法、终端设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN109710716A true CN109710716A (zh) 2019-05-03

Family

ID=66256122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811582786.7A Pending CN109710716A (zh) 2018-12-24 2018-12-24 地图流畅渲染方法、终端设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109710716A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880918A (zh) * 2020-07-28 2020-11-03 南京市城市与交通规划设计研究院股份有限公司 路网前端渲染方法、装置及电子设备
CN112231125A (zh) * 2020-12-16 2021-01-15 智道网联科技(北京)有限公司 智能车载网联终端的地图显示方法及装置
CN112287064A (zh) * 2020-12-25 2021-01-29 智道网联科技(北京)有限公司 地图引擎锚点的渲染方法及装置
CN113821737A (zh) * 2021-09-29 2021-12-21 中国平安财产保险股份有限公司 单页面应用的地图渲染方法、装置、设备及存储介质
CN113838182A (zh) * 2021-11-24 2021-12-24 之江实验室 基于多线程的磁共振3d图像大数据量渲染方法及系统
CN114862999A (zh) * 2022-07-11 2022-08-05 杭州安恒信息技术股份有限公司 一种打点渲染方法、装置、设备及存储介质
CN114928652A (zh) * 2022-04-29 2022-08-19 高德软件有限公司 地图数据传输方法、装置、电子设备、存储介质和程序
CN115033656A (zh) * 2022-08-15 2022-09-09 海纳云物联科技有限公司 基于地图缓存技术的数据处理方法、装置及电子装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593361A (zh) * 2009-06-25 2009-12-02 北京航空航天大学 一种基于双层嵌套网格的大规模地形绘制系统
CN104200506A (zh) * 2014-08-04 2014-12-10 广东威创视讯科技股份有限公司 三维gis海量矢量数据渲染方法及装置
US20170228255A1 (en) * 2013-06-27 2017-08-10 International Business Machines Corporation Parallelization of data processing
CN107169102A (zh) * 2017-05-16 2017-09-15 腾讯科技(深圳)有限公司 用于界面显示的数据查询方法、装置、计算机设备及存储介质
CN107767324A (zh) * 2017-10-24 2018-03-06 中国科学院电子学研究所苏州研究院 一种大型遥感图像快速缓存方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593361A (zh) * 2009-06-25 2009-12-02 北京航空航天大学 一种基于双层嵌套网格的大规模地形绘制系统
US20170228255A1 (en) * 2013-06-27 2017-08-10 International Business Machines Corporation Parallelization of data processing
CN104200506A (zh) * 2014-08-04 2014-12-10 广东威创视讯科技股份有限公司 三维gis海量矢量数据渲染方法及装置
CN107169102A (zh) * 2017-05-16 2017-09-15 腾讯科技(深圳)有限公司 用于界面显示的数据查询方法、装置、计算机设备及存储介质
CN107767324A (zh) * 2017-10-24 2018-03-06 中国科学院电子学研究所苏州研究院 一种大型遥感图像快速缓存方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孟庆祥等: "《OpenGIS设计开发基础教程 基于QGIS+PostGIS设计开发》", 30 August 2018, 武汉大学出版社 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880918A (zh) * 2020-07-28 2020-11-03 南京市城市与交通规划设计研究院股份有限公司 路网前端渲染方法、装置及电子设备
CN112231125A (zh) * 2020-12-16 2021-01-15 智道网联科技(北京)有限公司 智能车载网联终端的地图显示方法及装置
CN112231125B (zh) * 2020-12-16 2021-03-09 智道网联科技(北京)有限公司 智能车载网联终端的地图显示方法及装置
CN112287064A (zh) * 2020-12-25 2021-01-29 智道网联科技(北京)有限公司 地图引擎锚点的渲染方法及装置
CN113821737A (zh) * 2021-09-29 2021-12-21 中国平安财产保险股份有限公司 单页面应用的地图渲染方法、装置、设备及存储介质
CN113821737B (zh) * 2021-09-29 2024-02-06 中国平安财产保险股份有限公司 单页面应用的地图渲染方法、装置、设备及存储介质
CN113838182A (zh) * 2021-11-24 2021-12-24 之江实验室 基于多线程的磁共振3d图像大数据量渲染方法及系统
CN114928652A (zh) * 2022-04-29 2022-08-19 高德软件有限公司 地图数据传输方法、装置、电子设备、存储介质和程序
CN114862999A (zh) * 2022-07-11 2022-08-05 杭州安恒信息技术股份有限公司 一种打点渲染方法、装置、设备及存储介质
CN115033656A (zh) * 2022-08-15 2022-09-09 海纳云物联科技有限公司 基于地图缓存技术的数据处理方法、装置及电子装置
CN115033656B (zh) * 2022-08-15 2023-08-08 海纳云物联科技有限公司 基于地图缓存技术的数据处理方法、装置及电子装置

Similar Documents

Publication Publication Date Title
CN109710716A (zh) 地图流畅渲染方法、终端设备及计算机可读存储介质
DE102012216568B4 (de) Scheduling und Managen von Rechentasks mit unterschiedlichen Ausführungsprioritätsstufen
CN105338358B (zh) 对图像进行解码的方法及装置
DE102020133262A1 (de) Arbeitslastscheduler für Speicherzuweisung
CN103544207B (zh) 一种图片加载显示的方法与系统
CN106886570A (zh) 页面处理方法及装置
CN112905326B (zh) 任务处理方法及装置
CN106529408B (zh) 一种人脸检测的方法及装置
US20190109920A1 (en) Browser resource pre-pulling method, terminal and storage medium
CN104731956A (zh) 同步数据的方法、系统及相关数据库
CN104965686B (zh) 一种优先级队列设计方法及优先级队列设计装置
CN106156148A (zh) 一种页面的渲染方法、装置和终端设备
DE102020101814A1 (de) Effiziente ausführung anhand von aufgabengraphen festgelegter arbeitslasten
US10002147B2 (en) Merging of sorted lists using array pair
CN107197050A (zh) 一种分布式存储系统中文件写入的方法及系统
CN106293953B9 (zh) 一种访问共享显示数据的方法及系统
CN105843819A (zh) 一种数据导出方法及装置
US9612734B1 (en) Random access browser scrolling for large pages
CN107197359A (zh) 视频文件缓存方法及装置
CN106201224A (zh) 一种数据批量处理的方法及装置
WO2023051228A1 (zh) 样例数据的处理方法、装置、设备和存储介质
Kirsch et al. Using a queue to de-amortize cuckoo hashing in hardware
CN107220275B (zh) 数据库句柄处理方法、装置和计算机设备
CN105208004B (zh) 一种基于obd设备的数据入库方法
CN103208128B (zh) 显示图片的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190503