一种电子地图渲染方法和装置与流程

文档序号:11832753阅读:203来源:国知局
本发明涉及地图渲染
技术领域
:,更具体地说,涉及一种电子地图渲染方法和装置。
背景技术
::现有技术中进行电子地图渲染时,导航软件需要从本地文件中依据待渲染电子地图包含图幅的图幅ID(IDentity,身份标识号码)查找、读取每一个需要渲染的图幅,进而对读取到的每一个图幅进行解析,以将获取到的图幅解析成导航软件能够识别的格式来进行渲染。对上述电子地图渲染的实现过程进行研究不难发现,其过程需要导航软件查找、读取每一个图幅,并针对每一个图幅进行解析,而导航软件在本地文件中查找、读取2M内存大小的图幅所需的时间将近100ms左右,且对图幅进行解析也需要将近100ms左右的时间,由此可见,现有技术电子地图渲染存在耗时高的问题,这严重影响了电子地图的渲染效率。针对此,现有技术提供了一种电子地图渲染方法,如图1所示,该方法会在系统分配给导航软件的内存中缓存已渲染在终端屏幕上的电子地图包含的图幅,当用户拖拽或者放大、缩小电子地图使得终端屏幕显示的电子地图区域发生变化时,导航软件先从内存中缓存的图幅中读取待渲染的电子地图包含的图幅,这避免了上述现有技术中每一个图幅都要依据图幅ID来查找、读取、解析的步骤,节省了图幅读取和处理时间,在一定程度上提升了渲染效率。具体地,其方法包括:步骤101,根据比例尺系数、终端屏幕中心点对应的地理坐标及屏幕分辨率计算待渲染电子地图覆盖的地理矩形范围。步骤102,依据地理矩形范围计算待渲染电子地图包含的每个图幅的图幅ID。步骤103,依据各个图幅的图幅ID,依次判断各个图幅是否在内存中。如果图幅在内存中,则直接执行步骤105,如果图幅不在内存中,则执行步骤104。步骤104,从本地文件中,依据图幅ID找到所述图幅ID对应的图幅,读取、解析所述图幅后加载到内存中。由于系统分配给导航软件的内存的存储空间大小是固定的,且内存不仅需要用于缓存图幅,还需要缓存用于支持导航软件运行的其他数据,因此,需要控制图幅占用的缓存的存储空间。为了保证图幅占用的内存的存储空间在合理范围内,步骤104在将图幅读取、解析后加载到内存中时,需删除内存中失效的图幅。步骤105,从内存中读取图幅,并将图幅输出给渲染模块进行渲染。经过对现有电子地图渲染方法的研究后发现,由于现有技术内存中缓存的是前一次渲染的电子地图包含的图幅,当用户拖拽或者放大、缩小电子地图,即终端设备屏幕显示的地图区域发生变化时,当前待渲染的电子地图与前一次渲染的电子地图包含的图幅相比会发生变化,这种情况下,必然会存在内存中没有存储当前待渲染的电子地图包含的图幅的情况,而没有缓存在内存中的图幅则需要导航从本地文件中重新查找、读取以及解析得到,因此,现有技术虽然在一定程度上提高了电子地图的渲染效率,但效率提升有限,无法带给用户良好的使用体验。技术实现要素:有鉴于此,本发明提供一种电子地图渲染方法和装置,能够进一步提高地图的渲染效率,带给用户良好的使用体验。技术方案如下:基于本发明的一方面,本发明提供一种电子地图渲染方法,包括:获取当前待渲染的电子地图包含的图幅以及每个图幅的身份标识号码ID;依据各个图幅的图幅ID,依次判断各个图幅是否存储在第一存储空间中,所述第一存储空间至少存储了前一次渲染的电子地图包含的图幅;若有图幅未存储在所述第一存储空间中,则依据未存储在所述第一存储空间中的图幅ID,判断未存储在第一存储空间中的图幅是否存储在第二存储 空间中,所述第二存储空间存储了前一次渲染的电子地图包含的图幅周边的图幅;若所述第二存储空间存储有所述未存储在所述第一存储空间的图幅,则判断所述第一存储空间是否能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅,若能,则将所述第二存储空间存储的未存储在所述第一存储空间的图幅复制到所述第一存储空间;从所述第一存储空间中读取图幅进行渲染。较优的,所述方法还包括:若所述第一存储空间不能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅,则删除所述第一存储空间存储的不属于所述当前待渲染的电子地图的图幅。较优的,所述方法还包括:获取当前待渲染的电子地图包含的图幅周边的图幅及图幅ID;依据各个图幅ID,判断所述第二存储空间是否存储了所述图幅,如果没有存储,则从本地文件中查找、读取并解析所述图幅ID对应的图幅;判断所述第二存储空间是否能存储所述解析出的图幅,如果能,将解析后的图幅存储至所述第二存储空间,如果不能,则删除所述第二存储空间存储的不属于当前待渲染的电子地图包含的图幅周边的图幅。较优的,所述方法还包括:判断所述第一存储空间是否能存储所述第二存储空间存储的图幅,如果能,则将所述第二存储空间中存储的图幅复制到所述第一存储空间中,直到第一存储空间剩余的存储空间无法存储所述第二存储空间存储的一个完整图幅。较优的,所述方法还包括:将所述第二存储空间中复制到所述第一存储空间的图幅从所述第二存储空间中删除。基于本发明的另一方面,本发明还提供一种电子地图渲染装置,包括:第一获取单元,用于获取当前待渲染的电子地图包含的图幅以及每个图幅的身份标识号码ID;第一判断单元,用于依据各个图幅的图幅ID,依次判断各个图幅是否存储在第一存储空间中,所述第一存储空间至少存储了前一次渲染的电子地图包含的图幅;第二判断单元,用于依据未存储在所述第一存储空间中的图幅ID,判断未存储在第一存储空间中的图幅是否存储在第二存储空间中,所述第二存储空间存储了前一次渲染的电子地图包含的图幅周边的图幅;第三判断单元,用于当所述第二判断单元判断未存储在第一存储空间中的图幅存储在第二存储空间中时,判断所述第一存储空间是否能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅;第一复制单元,用于在所述第三判断单元判断所述第一存储空间能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅时,将所述第二存储空间存储的未存储在所述第一存储空间的图幅复制到所述第一存储空间;渲染单元,用于从所述第一存储空间中读取图幅进行渲染。较优的,还包括:第一删除单元,用于在所述第三判断单元判断所述第一存储空间不能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅时,删除所述第一存储空间存储的不属于所述当前待渲染的电子地图的图幅。较优的,还包括:第二获取单元,用于获取当前待渲染的电子地图包含的图幅周边的图幅及图幅ID;第四判断单元,用于依据各个图幅ID,判断所述第二存储空间是否存储了所述图幅;查找解析单元,用于当所述第四判断单元判断所述第二存储空间没有存储所述图幅,从本地文件中查找、读取并解析所述图幅ID对应的图幅;第五判断单元,用于判断所述第二存储空间是否能存储所述解析出的图幅;存储单元,用于在所述第五判断单元判断所述第二存储空间能存储所述解析出的图幅时,将解析后的图幅存储至所述第二存储空间;第二删除单元,用于在所述第五判断单元判断所述第二存储空间不能存 储所述解析出的图幅时,删除所述第二存储空间存储的不属于当前待渲染的电子地图包含的图幅周边的图幅。较优的,还包括:第六判断单元,用于判断所述第一存储空间是否能存储所述第二存储空间存储的图幅;第二复制单元,用于在所述第六判断单元判断所述第一存储空间能存储所述第二存储空间存储的图幅时,将所述存储单元存储在第二存储空间中的图幅复制到所述第一存储空间中,直到第一存储空间剩余的存储空间无法存储所述第二存储空间存储的一个完整图幅。较优的,还包括:第三删除单元,用于将所述第二存储空间中复制到所述第一存储空间的图幅从所述第二存储空间中删除。应用本发明上述技术方案,本发明提供的一种电子地图渲染方法包括获取当前待渲染的电子地图包含的图幅以及每个图幅的ID,依据各个图幅的图幅ID,依次判断各个图幅是否存储在第一存储空间中,若有图幅未存储在第一存储空间中,则依据未存储在所述第一存储空间中的图幅ID,判断未存储在第一存储空间中的图幅是否存储在第二存储空间中,所述第二存储空间存储了前一次渲染的电子地图包含的图幅周边的图幅,若所述第二存储空间存储有所述未存储在所述第一存储空间的图幅,则判断所述第一存储空间是否能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅,若能,则将所述第二存储空间存储的未存储在所述第一存储空间的图幅复制到所述第一存储空间,最后从所述第一存储空间中读取图幅进行渲染。本发明提供的电子地图渲染方法包括第一存储空间和第二存储空间,其第二存储空间存储了前一次渲染的电子地图包含的图幅周边的图幅,那么当用户拖拽或者放大、缩小电子地图,即终端设备屏幕显示的地图区域发生变化时,第一存储空间中没有存储有当前待渲染的电子地图包含的图幅,本发明可以从第二存储空间中继续查找未存储在第一存储空间中的当前待渲染的电子地图包含的图幅,并将查找到该图幅复制到第一存储空间,从第一存储空间中读取该图幅进行渲染。相比于现有技术中的电子地图渲染方法,当用 户小幅度拖拽电子地图或者放大、缩小电子地图后的比例尺和前一次渲染的电子地图的比例尺属于同一层级时,当前待渲染的电子地图通常至少会包含前一次渲染的电子地图的部分图幅,并且会包含部分前一次渲染的电子地图包含的图幅周边的图幅,而本发明利用第一存储空间和第二存储空间分别存储了前一次渲染的电子地图包含的图幅以及这些图幅周边的图幅,可见,本发明很大程度减少了需要从本地文件中重新查找、读取以及解析的图幅的数量,因此,本发明进一步提高了地图的渲染效率,带给用户良好的使用体验。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为现有技术中电子地图渲染方法的流程图;图2为本发明提供的一种电子地图渲染方法的一种流程图;图3为本发明中计算得到的地理矩形范围的示意图;图4为本发明中确定需要加载的图幅个数的示意图;图5为本发明提供的一种电子地图渲染方法的另一种流程图;图6为本发明提供的一种电子地图渲染方法的再一种流程图;图7为本发明提供的一种电子地图渲染装置的一种结构示意图;图8为本发明提供的一种电子地图渲染装置的另一种结构示意图;图9为本发明提供的一种电子地图渲染装置的再一种结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在嵌入式设备中,文件查找、读取、解析图幅的动作耗时较长,如果在 地图渲染过程中,每一个图幅都要从本地文件中查找、读取、解析而得到,那么势必造成地图的渲染效率降低。基于此,现有技术中会在系统分配给导航软件的内存中缓存当前渲染在终端屏幕上的电子地图包含的图幅,然而当用户拖拽或者放大、缩小电子地图使得终端屏幕显示的电子地图区域发生变化时,当前待渲染的电子地图包含的图幅有些并没有存储在内存中,这些没有存储在内存中的图幅就需要导航从本地文件中查找、读取、解析而得到,因此现有技术只是在一定程度上提高了地图的渲染效率。进一步,系统分配给导航软件的内存大小是一定的,为了保证导航软件正常运行,其用于缓存图幅的内存总量大小需要控制在合理范围内,因此如果只是单纯地通过增大用于缓存图幅的内存总量大小的方案是不可行的。基于现有技术中的上述问题,本发明提出一种电子地图渲染方法和装置,以实现在合理利用系统分配给导航软件的内存空间来提高地图的渲染效率。在具体描述本发明实施例前,发明人首先对现有技术中地图渲染的相关
背景技术
:进行介绍。根据国家地理信息图幅网格划分标准,标准图幅大小为7’5”*5’(7分5秒乘以5分),该标准图幅大小称之为详细层。基于详细层,向上进一步分层包括2*2、4*4、8*8、16*16等大小的图幅。其中各层级对应的比例尺级别根据各导航软件的应用各不相同,如:7’5”*5’标准图幅网格大小的数据层对应的比例尺级别为:1:500m(米)以下;2*2标准图幅网格大小的数据层对应的比例尺级别为:1:500m到1:2Km(千米)之间;4*4标准图幅网格大小的数据层对应的比例尺级别为:1:2Km到1:10Km之间。其中,每一数据层中的图幅大小是固定不变的。在同一个数据层中,用户执行放大当前地图操作时是不需要重新加载图幅的,而当用户执行缩小当前地图操作时由于当前地图需要加载的地图范围变大了,此时需要加载新的图幅。而如果跨数据层操作,如用户将当前屏幕显示的区域移出了当前地图显示区域所在的区域时,此时由于当前缓存的图幅均为屏幕显示的前一数据层的图幅数据,而移动到的当前需要显示的数据层的图幅数据并没有缓存在缓存中,此时需要重新加载跨数据层的图幅。本发明提供的电子地图渲染方法适用于用户对电子地图进行小幅度拖动的应用场景,对于用户对电子地图进行缩放操作的应用场景,如果当前的地 图缩放级别与前一次渲染电子地图时地图缩放级别分别对应的图幅大小相同,本发明可以在第一存储空间和第二存储空间中来查找获得当前待渲染电子地图包含的图幅,而如果两次分别对应的图幅大小不相同,则本发明中的第一存储空间和第二存储空间中均没有存储有当前待渲染电子地图包含的图幅,此时需要导航从本地文件中查找、读取、解析而得到。具体地请参阅图2,其示出了本发明提供的一种电子地图渲染方法的一种流程图,包括:步骤201,获取当前待渲染的电子地图包含的图幅以及每个图幅的ID。具体地,本发明首先依据比例尺系数、终端屏幕中心点对应的地理坐标及屏幕分辨率计算待渲染电子地图覆盖的地理矩形范围。以比例尺级别为1:1Km为例来说,其1:1Km表示的是屏幕1cm(厘米)的长度等于实际1Km的实地距离。以普通PND(PortableNavigationDevices,便携式自动导航软件)机器像素密度为例,其1cm等于25像素,那么每像素能显示的实地距离为1000m/25d=40m/d(米/像素),即该比例尺的比例尺系数为40。因此,本实施例中,比例尺系数为40表示的是每像素对应40m的实地距离。以屏幕分辨率为800d*480d为例来说,其显示的实地范围为:经度范围为800d*40m/d=32000m,纬度范围为480d*40m/d=19200m。其次,本发明依据待渲染电子地图覆盖的地理矩形范围可以计算得到当前待渲染的电子地图包含的图幅、图幅个数以及每个图幅的图幅ID。具体地,如图3所示,例如以(X0,Y0)为地图中心点建立X轴,Y轴坐标系,依据比例尺系数及屏幕分辨率计算得到的地理矩形范围为一个矩形框,确定该矩形框的坐标为(X1,Y1)和(X2,Y2)。进一步,通过(X1,Y1)可以获取到所在图幅内的行列号为(N1,M1),通过(X2,Y2)可以获取到所在图幅内的行列号为(N2,M2),以确定当前待渲染的电子地图包含的图幅及每个图幅的图幅ID,且如图4所示,本发明利用待渲染电子地图覆盖的地理矩形范围还能够计算得到当前待渲染的电子地图包含的图幅个数为(N2-N1+1)*(M2-M1+1)。步骤202,依据各个图幅的图幅ID,依次判断各个图幅是否存储在第一存储空间中,所述第一存储空间至少存储了前一次渲染的电子地图包含的图幅。如果各个图幅均存储在第一存储空间中,直接执行步骤208,如果有图幅未存储在第一存储空间中,则执行步骤203。本发明在获取当前待渲染的电子地图包含的图幅以及每个图幅的ID后,首先依据图幅ID依次判断各个图幅是否存储在第一存储空间中。其中第一存储空间至少存储了前一次渲染的电子地图包含的图幅。当当前待渲染的电子地图包含的图幅有存储在第一存储空间中时,直接从第一存储空间中读取图幅进行渲染。如果当前待渲染的电子地图包含的图幅有未存储在第一存储空间时,对于未存储在第一存储空间中的当前待渲染的电子地图包含的图幅来说,继续执行步骤203。步骤203,依据未存储在第一存储空间中的图幅ID,判断未存储在第一存储空间中的图幅是否存储在第二存储空间中。其中第二存储空间存储了前一次渲染的电子地图包含的图幅周边的图幅。如果第二存储空间存储有所述未存储在所述第一存储空间的图幅,执行步骤204,如果第二存储空间未存储有所述未存储在所述第一存储空间的图幅,执行步骤207。本发明中,当第一存储空间中没有存储有图幅A时,本发明继续从第二存储空间中查找是否存储有所述图幅A。需要说明的是,在实际应用中,系统会给导航软件预先分配一个内存空间,用于缓存渲染的电子地图包含的图幅,本发明正是对该系统预先为导航软件分配的该内存空间进行进一步划分,具体将其划分为第一存储空间和第二存储空间。本发明中第二存储空间不同于第一存储空间,其分属不同的线程进行控制。第二存储空间的存储空间大小与第一存储空间的存储空间大小可由研发人员依据经验来设置,本发明不做限定,较优的,可以设置第二存储空间的存储空间大小大于第一存储空间的存储空间大小。步骤204,判断第一存储空间是否能存储第二存储空间存储的未存储在所述第一存储空间的图幅。如果能,执行步骤206,如果不能,执行步骤205。步骤205,删除第一存储空间存储的不属于当前待渲染的电子地图的图幅。当第一存储空间不能存储第二存储空间存储的未存储在所述第一存储空间的图幅时,本发明删除第一存储空间存储的不属于当前待渲染的电子地图 的图幅,以节省出第一存储空间的存储空间,进而保证能够将第二存储空间存储的未存储在第一存储空间的图幅复制到第一存储空间。步骤206,将第二存储空间存储的未存储在第一存储空间的图幅复制到第一存储空间。本发明在具体应用过程中,为了充分利用第一存储空间和第二存储空间的存储空间利用率,第一存储空间中存储的图幅应与第二存储空间中存储的图幅不同,同时为了保证第二存储空间中存储的图幅尽可能的符合用户实际操作过程中的需求,通常情况下第二存储空间中存储的图幅为前一次渲染的电子地图包含的图幅周边的图幅,如前一次渲染的电子地图包含的图幅为北京市东城区区域的图幅,那么第二存储空间中存储的图幅可以为北京市东城区区域的图幅周边的图幅,如北京市西城区区域的图幅、北京市朝阳区区域的图幅等。因此当例如用户进行地图拖拽时,如将当前北京市东城区区域的地图显示区域拖曳到北京市西城区区域进行显示,此时因为第二存储空间中存储有北京市西城区区域的图幅,因此无需从本地文件中重新查找、读取以及解析北京市西城区区域的图幅,大大提高了地图的渲染效率。步骤207,依据未存储在第一存储空间中的图幅ID,从本地文件中查找图幅ID对应的图幅,读取、解析所述图幅后加载到第一存储空间中。如果第一存储空间与第二存储空间中均没有存储有图幅A时,就需要从本地文件中查找图幅ID对应的图幅,读取、解析所述图幅后加载到第一存储空间中。步骤208,从第一存储空间中读取图幅进行渲染。在本发明中,由于第一存储空间和第二存储空间的存储空间大小一定,为了充分利用第一存储空间和第二存储空间的存储空间,较优的,本发明在步骤206后还可以包括:步骤209,从第二存储空间中删除第二存储空间中存储的未存储在第一存储空间的图幅。例如在将第二存储空间中存储的图幅A复制到第一存储空间中后,将图幅A从第二存储空间中删除,以节省第二存储空间的存储空间。同时该节省出来的存储空间还可用于重新加载新的图幅。应用本发明上述技术方案,本发明提供的一种电子地图渲染方法包括获取当前待渲染的电子地图包含的图幅以及每个图幅的ID,依据各个图幅的图幅ID,依次判断各个图幅是否存储在第一存储空间中,若有图幅未存储在第一存储空间中,则依据未存储在所述第一存储空间中的图幅ID,判断未存储在第一存储空间中的图幅是否存储在第二存储空间中,所述第二存储空间存储了前一次渲染的电子地图包含的图幅周边的图幅,若所述第二存储空间存储有所述未存储在所述第一存储空间的图幅,则判断所述第一存储空间是否能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅,若能,则将所述第二存储空间存储的未存储在所述第一存储空间的图幅复制到所述第一存储空间,最后从所述第一存储空间中读取图幅进行渲染。本发明提供的电子地图渲染方法包括第一存储空间和第二存储空间,其第二存储空间存储了前一次渲染的电子地图包含的图幅周边的图幅,那么当用户拖拽或者放大、缩小电子地图,即终端设备屏幕显示的地图区域发生变化时,第一存储空间中没有存储有当前待渲染的电子地图包含的图幅,本发明可以从第二存储空间中继续查找未存储在第一存储空间中的当前待渲染的电子地图包含的图幅,并将查找到该图幅复制到第一存储空间,从第一存储空间中读取该图幅进行渲染,相比于现有技术中的电子地图渲染方法,本发明引入了第一存储空间和第二存储空间的两级缓存机制,本发明可以将当前待渲染的电子地图包含的图幅从第二存储空间中复制到第一存储空间中,无需从本地文件中重新查找、读取以及解析来得到,进一步提高了地图的渲染效率,带给用户良好的使用体验。实施例二为了进一步保证第二存储空间的充分利用,本发明支持在第二存储空间有能力进一步加载新的图幅的情况下,在地图渲染完成后,自动在第二存储空间中加载新的图幅,具体方法如图5,其示出了本发明提供的一种电子地图渲染方法中第二存储空间自动加载新图幅的流程图,包括:步骤301,获取当前待渲染的电子地图包含的图幅周边的图幅及图幅ID。本发明中当前待渲染的电子地图包含的图幅周边的图幅可以为在当前待渲染的电子地图包含的图幅上,上下左右外扩一行一列,或两行两列,或多 行多列的图幅,其具体外扩多少图幅可根据第二存储空间剩余的存储空间大小来决定。较优的,本发明以保证第二存储空间的全部存储空间被利用的原则来外扩图幅。本发明以外扩一行一列图幅为例进行说明,具体地以前述实施例确定的矩形框为基准,外扩一行及一列图幅,此时图幅的行列号分别为(N1-1,M1-1)和(N2+1,M2+1)。步骤302,依据各个图幅ID,判断所述第二存储空间是否存储了所述图幅。如果存储有,返回执行步骤301,如果没有存储,则执行步骤303。步骤303,从本地文件中查找、读取并解析所述图幅ID对应的图幅。步骤304,判断第二存储空间是否能存储解析出的图幅。如果能,执行步骤306,如果不能,执行步骤305。步骤305,删除第二存储空间存储的不属于当前待渲染的电子地图包含的图幅周边的图幅。本发明通过删除第二存储空间存储的不属于当前待渲染的电子地图包含的图幅周边的图幅,以节省出第二存储空间的存储空间,来用于存储当前待渲染的电子地图包含的图幅周边的图幅。步骤306,将解析后的图幅存储至第二存储空间。为了便于对外扩得到的图幅的管理,本发明可以将外扩得到的图幅进行排序,并按照排列顺序依次存储到第二存储空间中。实施例三在上述实施例的基础上,本发明还支持将第二存储空间中存储的图幅主动复制到第一存储空间中,即本发明只要获知第一存储空间有剩余存储空间,能够存储新的图幅,便将第二存储空间中存储的图幅复制到第一存储空间,以保证第一存储空间的存储空间利用率。具体地,如图6所示,包括:步骤401,判断第一存储空间是否能存储第二存储空间存储的图幅。如果能,执行步骤402,如果不能,执行步骤403。步骤402,将第二存储空间中存储的图幅复制到第一存储空间中,直到第一存储空间剩余的存储空间无法存储第二存储空间存储的一个完整图幅。具体地,第二存储空间将图幅复制到第一存储空间可以为第二存储空间 按照图幅类型依次将图幅复制到第一存储空间中。本发明中图幅类型包括外扩图幅、增大图幅和缩小图幅。步骤403,结束流程。此外较优的,本发明在执行完步骤402后,还可包括步骤404,将第二存储空间中复制到第一存储空间的图幅从第二存储空间中删除,以节省第二存储空间的存储空间,进而继续外扩新的图幅。本实施例保证了第二存储空间的图幅能够及时快速地复制到第一存储空间中去利用,且保证了第一存储空间的充分利用,提高了第一存储空间和第二存储空间的存储空间利用率。在此基础之上,本发明中的步骤403还可以为:删除第一存储空间存储的不属于当前待渲染的电子地图的图幅,以使得第一存储空间能够存储第二存储空间存储的图幅。此外发明人还需要说明的是,本发明为了保证将第二存储空间存储的图幅成功复制到第一存储空间,系统可以对该复制动作进行写保护,即在第二存储空间将图幅复制到第一存储空间的过程中,不允许其他线程访问第一存储空间或第二存储空间。如系统需要对第一存储空间或第二存储空间执行某项操作,可在第二存储空间完成将图幅复制到第一存储空间后执行。本发明中,第二存储空间将图幅复制到第一存储空间的执行动作用时很短,其实质只是一个地址赋值的操作,不会导致系统中其他操作的延时。实施例四基于前文本发明提供的一种电子地图渲染方法,本发明还提供一种电子地图渲染装置,如图7所示,包括:第一获取单元100、第一判断单元200、第二判断单元300、第三判断单元400、第一复制单元500和渲染单元600。其中,第一获取单元100,用于获取当前待渲染的电子地图包含的图幅以及每个图幅的ID;第一判断单元200,用于依据各个图幅的图幅ID,依次判断各个图幅是否存储在第一存储空间中,所述第一存储空间至少存储了前一次渲染的电子地图包含的图幅;第二判断单元300,用于依据未存储在所述第一存储空间中的图幅ID,判断未存储在第一存储空间中的图幅是否存储在第二存储空间中,所述第二存储空间存储了前一次渲染的电子地图包含的图幅周边的图幅;第三判断单元400,用于当所述第二判断单元300判断未存储在第一存储空间中的图幅存储在第二存储空间中时,判断所述第一存储空间是否能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅;第一复制单元500,用于在所述第三判断单元400判断所述第一存储空间能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅时,将所述第二存储空间存储的未存储在所述第一存储空间的图幅复制到所述第一存储空间;渲染单元600,用于从所述第一存储空间中读取图幅进行渲染。较优的,还包括第一删除单元700,用于在所述第三判断单元400判断所述第一存储空间不能存储所述第二存储空间存储的未存储在所述第一存储空间的图幅时,删除所述第一存储空间存储的不属于所述当前待渲染的电子地图的图幅。较优的,如图8所示,其示出了本发明提供的一种电子地图渲染装置的另一种结构示意图,包括:第二获取单元800,用于获取当前待渲染的电子地图包含的图幅周边的图幅及图幅ID;第四判断单元900,用于依据各个图幅ID,判断所述第二存储空间是否存储了所述图幅;查找解析单元1000,用于当所述第四判断单元900判断所述第二存储空间没有存储所述图幅,从本地文件中查找、读取并解析所述图幅ID对应的图幅;第五判断单元1100,用于判断所述第二存储空间是否能存储所述解析出的图幅;存储单元1200,用于在所述第五判断单元1100判断所述第二存储空间能存储所述解析出的图幅时,将解析后的图幅存储至所述第二存储空间;第二删除单元1300,用于在所述第五判断单元1100判断所述第二存储空间不能存储所述解析出的图幅时,删除所述第二存储空间存储的不属于当前待渲染的电子地图包含的图幅周边的图幅。较优的,如图9所示,其示出了本发明提供的一种电子地图渲染装置的再一种结构示意图,包括:第六判断单元1400,用于判断所述第一存储空间是否能存储所述第二存储空间存储的图幅;第二复制单元1500,用于在所述第六判断单元1400判断所述第一存储空间能存储所述第二存储空间存储的图幅时,将所述存储单元1200存储在第二存储空间中的图幅复制到所述第一存储空间中,直到第一存储空间剩余的存储空间无法存储所述第二存储空间存储的一个完整图幅。第三删除单元1600,用于将所述第二存储空间中复制到所述第一存储空间的图幅从所述第二存储空间中删除。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。以上对本发明所提供的一种电子地图渲染方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1