地图中兴趣点的名称的存储方法及加载方法、车载系统的制作方法

文档序号:6024159阅读:279来源:国知局
专利名称:地图中兴趣点的名称的存储方法及加载方法、车载系统的制作方法
技术领域
本发明涉及地图的存储技术,尤其是一种地图中兴趣点的名称的存储方法及装置,地图中兴趣点的名称的加载方法及装置,车载系统。
背景技术
汽车作为人们的日常交通工具已经拥有了 120多年的历史,在此期间随着科技的发展,汽车也经历了日新月异的变化。伴随着汽车技术的不断发展与进步,车载系统作为汽车的辅助产品,逐渐走进人们的生活。车载系统中车载地图的导航功能为汽车用户在寻找道路和目的地上提供了极大的方便。地图是由地图数据绘制而成的,地图数据存放在地图数据库中,在绘制地图时,从地图数据库中加载相应的地图数据,绘制后显示在屏幕中。地图数据通常很大,包含的内容也很多,一个地区的地图数据,通常包括地域数据、道路数据和兴趣点数据等。兴趣点在地图中以名称显示,兴趣点的名称以文本的形式存储在地图数据中。兴趣点数据中通常包括表示该兴趣点的名称,该兴趣点的位置坐标等数据。目前地图在绘制显示时,需要将绘制本次地图所需的地图数据保存到缓存中,再从缓存中读取该地图数据进行绘制。由于地图中兴趣点的数目十分庞大,动辄几百甚至成千上万,因此每一个兴趣点显示时,都加载一次该兴趣点的名称,将会严重影响效率。另外,兴趣点的名称以文本的形式存储,每一个兴趣点的名称都保存,导致兴趣点的名称的存储占据了大量的缓存空间。这不仅导致地图的加载速度缓慢,而且耗费了较大的存储资源,提高了成本。公开号为CN 101647048A的中国专利申请,公开了一种地图显示系统,其沿着显示画面显示的地图上的道路动态地显示道路名称、导向等导航关联信息,易于辨认出显示画面上显示的道路及其道路名称、行进方向。但是如何提高地图的加载速度,且降低对资源的耗损成为目前亟待解决的问题之
O

发明内容
本发明技术方案解决的问题是现有的地图的加载速度慢,且资源的耗损高。为解决上述问题,本发明的技术方案提供了一种地图中兴趣点的名称的存储方法,包括:基于本次加载的地图中出现的兴趣点的名称和缓存中已存储的兴趣点的名称,添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存。为解决上述问题,本发明的技术方案还提供了一种地图中兴趣点的名称的存储装置,包括:
缓存,用于存储兴趣点的名称;操作单元,用以基于本次加载的地图中出现的兴趣点的名称和所述缓存中已存储的兴趣点的名称,添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存。为解决上述问题,本发明的技术方案还提供了一种地图中兴趣点的名称的加载方法,包括:利用上述地图中兴趣点的名称的存储方法存储兴趣点的名称;每次加载地图时,基于本次加载的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,并加载该匹配的兴趣点的名称。为解决上述问题,本发明的技术方案还提供了一种地图中兴趣点的名称的加载装置,包括:上述地图中兴趣点的名称的存储装置;加载单元,用以在每次加载地图时,基于本次加载的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,并加载该匹配的兴趣点的名称。为解决上述问题,本发明的技术方案还提供了一种车载系统,包括上述地图中兴趣点的名称的存储装置。为解决上述问题,本发明的技术方案还提供了一种车载系统,包括上述地图中兴趣点的名称的加载装置。与现有技术相比,上述技术方案具有以下优点:每次加载地图时,添加至缓存中的兴趣点的名称不同于缓存中已存储的兴趣点的名称,也就是不重复存储相同的兴趣点的名称,这样名称相同的兴趣点的名称仅存储一次,节省了缓存的存储空间;而且从所述缓存中加载兴趣点的名称时,名称相同的兴趣点共用一个名称,也提高了兴趣点的名称的利用率。将兴趣点的名称按照出现频率从低到高的顺序或者存储时间的先后顺序以链表或数组的形式存储在缓存中,并根据每一次新加载的地图,删除当前链表或数组中出现频率低或者存储时间长的兴趣点的名称,并添加新出现的兴趣点的名称。这不仅可以进一步的节省存储空间,而且存储空间可以复用,新出现的兴趣点的名称可以复用清空的存储空间。每次加载地图时,基于本次加载的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,并加载该匹配的兴趣点的名称。这不仅保证了加载的兴趣点的名称的正确性,而且提高了兴趣点的名称的加载速度。本次加载的地图中出现的名称相同的兴趣点,共用缓存中的同一个兴趣点的名称,实现了一个兴趣点的名称供多个兴趣点使用的效果。建立所述本次加载的地图中出现的兴趣点的名称与该已存储的相匹配的兴趣点的名称的映射,根据所述映射加载该已存储的兴趣点的名称。这提高了加载兴趣点的名称的速度,提高了效率。


图1是本发明实施例提供的地图中兴趣点的名称的存储方法的流程图;图2是本发明实施例提供的地图的兴趣点的名称的存储结构示意图;图3是本发明实施例提供的加入新的兴趣点的名称之后的兴趣点的名称的存储结构示意图;图4是本发明实施例提供的地图中兴趣点的名称的存储装置的结构图;图5是本发明实施例提供的地图中兴趣点的名称的加载装置的结构图。
具体实施例方式为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式
做详细的说明。在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式
的限制。在地图的加载过程中,通常是先获取地图数据,再根据获取到的地图数据绘制本次加载的地图。地图中通常包括大量的兴趣点,例如,餐馆、酒店、商场、学校等。兴趣点在地图中以名称显示,兴趣点的名称以文本的形式存储在地图数据库中。地图数据库中保存地图数据,兴趣点数据包含在地图数据中,所述兴趣点数据通常包括表示该兴趣点的名称,该兴趣点的位置坐标等数据。地图在绘制显示时,需要将绘制本次地图所需的地图数据保存到缓存中,再从缓存中读取该地图数据进行绘制。由于地图中兴趣点的数目十分庞大,动辄几百甚至成千上万,因此每一个兴趣点显示时,都加载一次该兴趣点的名称,将会严重影响效率。另外,兴趣点的名称以文本的形式存储,每一个兴趣点的名称都保存,导致地图数据中兴趣点的名称的存储占据了大量的缓存空间。这不仅导致地图的加载速度缓慢,而且耗费了较大的存储资源,提高了成本。鉴于上述情况,本发明的技术方案提供了一种地图中兴趣点的名称的存储方法和加载方法。所述地图中兴趣点的名称的存储方法包括:基于本次加载的地图中出现的兴趣点的名称和缓存中已存储的兴趣点的名称,添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存。所述地图中兴趣点的名称的加载方法包括:利用上述存储方法存储地图中兴趣点的名称;每次加载地图时,基于本次加载的地图中出现的兴趣点的名称在所述缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,并加载该匹配的兴趣点的名称。每次加载地图时,添加至缓存中的兴趣点的名称不同于缓存中已存储的兴趣点的名称,也就是不重复存储相同的兴趣点的名称,这样名称相同的兴趣点的名称仅存储一次,节省了缓存的存储空间;而且从所述缓存中加载兴趣点的名称时,名称相同的兴趣点共用一个名称,也提高了兴趣点的名称的利用率。图1是本发明实施例提供的地图中兴趣点的名称的存储方法的流程图,下面结合图1详细说明。所述地图中兴趣点的名称的存储方法包括:步骤SI,获取地图数据;步骤S2,基于本次加载的地图中出现的兴趣点的名称和缓存中已存储的兴趣点的名称,添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存。所述步骤SI中,地图是根据地图数据绘制的,地图数据存储在地图数据库中。所述获取地图数据可以是从地图数据库中获取绘制本次地图所需要的地图数据,然后存储在缓存(通常为内存)中。所述加载地图通常是指从缓存读取地图数据,并利用读取到的地图数据绘制地图的过程。获取地图数据,根据所述地图数据分析本次加载的地图中的兴趣点数据,所述兴趣点数据包含本次加载的地图中出现的每一个兴趣点的名称、该兴趣点的位置信息等。在具体实施时,地图中的兴趣点动辄几百,甚至成千上万,存储地图中兴趣点的名称前,可以对当前要加载的地图中出现的兴趣点进行分类。地图中经常出现名称相同的兴趣点,例如,肯德基、麦当劳、停车场、加油站等,因此可以按照兴趣点的名称对兴趣点分类,名称相同兴趣点为一类,相应的,可以分为肯德基类型、麦当劳类型、停车场类型、加油站类型等。存储兴趣点的名称时,每类兴趣点的名称仅存储一次,该类型的兴趣点共用一个名称。也就是说,每种类型的所有兴趣点共用一个名称,可以以兴趣点的名称表示该类型的兴趣点。这不仅降低了存储兴趣点的名称的次数,而且节省了存储空间。所述步骤S2中,由于每次加载显示的地图不同,因此地图中显示的兴趣点也有所不同。每次加载地图时,基于本次加载的地图中出现的兴趣点的名称和缓存中已存储的兴趣点的名称,添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存。也就是说,每次将不同于已存储的兴趣点的名称添加入缓存中。在具体实施中,若如所述步骤SI中,对地图中的兴趣点进行分类,通常将存储在缓存中的兴趣点的类型可以称为预定类型,所述兴趣点的类型就是所述兴趣点的名称的类型。基于本次加载的地图中出现的兴趣点的名称及缓存中已存储的兴趣点的名称,确定缓存中存储的预定类型的兴趣点的名称。所述预定类型的兴趣点的名称(缓存中已存储的兴趣点的名称)以数组或链表的形式存储,通常称存储兴趣点的名称的数组或链表为名称库。由于每次加载的地图中出现的兴趣点有可能不同,需要将新出现的兴趣点的名称添加到所述名称库中,因此每次加载地图时,需要重新设置预定类型,存储新出现的兴趣点的名称至所述名称库。具体的,基于本次加载的地图中出现的兴趣点的名称及缓存中已存储的兴趣点的名称,查找本次加载的地图中出现的兴趣点的名称中是否存在不同于缓存中已存储的兴趣点的名称,也就是查找本次加载的地图中出现的兴趣点的名称中是否存在新出现的兴趣点的名称。若未出现新的兴趣点的名称,则本次的预定类型的兴趣点的名称与上一次的预定类型的兴趣点的名称相同,若出现新的兴趣点的名称,将新的兴趣点的名称加入名称库,新的预定类型为新出现的兴趣点的名称的类型+上一次存储的地图中出现的兴趣点的名称的类型。所述缓存中已存储的兴趣点的名称按照存储时间排序存储在所述数组或链表中。通常按照存储时间的先后排序存储在所述数组或链表中。也就是说,先存储的兴趣点的名称在前,后存储的兴趣点的名称在后。所述缓存中已存储的兴趣点的名称还可以按照每种类型的兴趣点的名称的出现频率从低到高顺序存储。所述兴趣点的名称的出现频率(也就是每类兴趣点的出现频率)基于加载所述地图的次数及所述兴趣点的名称的出现次数确定。具体的,所述出现频率有两种计算方法,一种是:基于该类型的兴趣点在地图中的数目占据地图中所有类型的兴趣点的数目的比例;一种是:每次加载地图时,该类型的兴趣点出现的次数占据加载地图的次数的比例。举例来讲,第一种计算方法:加油站类型的兴趣点的数目为100,地图中所有类型的兴趣点数目的总和为1000,则加油站类型的兴趣点的出现频率为100/1000 = 10%。由于地图可以加载显示多次,每次可以显示不同地域的地图,因此每种类型的兴趣点的数目为每次加载的地图中该类型的兴趣点数目的总和,地图中所有类型的兴趣点的数目为每次加载的地图中所有类型的兴趣点的数目的总和。例如,地图加载了三次,第一次加载的地图中加油站类型的兴趣点的数目为100,第一次加载的地图中所有类型的兴趣点的数目为1000 ;第二次加载的地图中加油站类型的兴趣点的数目为50,第二次加载的地图中所有类型的兴趣点的数目为1000 ;第三次加载的地图中加油站类型的兴趣点的数目为200,第三次加载的地图中所有类型的兴趣点的数目为2000,则加油站类型的兴趣点的出现频率为(100+50+200)/(1000+1000+2000) = 8.75%。此处仅是以加油站类型的兴趣点举例说明,其他类型的兴趣点的出现频率的计算方法与之类似。第二种计算方法,第一次加载地图时,加载地图的次数为I次,地图中仅出现了加油站类型的兴趣点、停车场类型的兴趣点,则加油站类型的兴趣点出现的次数为I次,停车场类型的兴趣点出现的次数也为I次。加油站类型的兴趣点的出现频率为1/1 = 100%,停车场类型的兴趣点的出现频率也为1/1 = 100%。地图中未出现的其他类型的兴趣点的出现频率为O。第二次加载地图时,加载地图的次数为2次,第二次地图中仅出现了加油站类型的兴趣点,未出现停车场类型的兴趣点,则加油站类型的兴趣点出现的次数为2次,停车场类型的兴趣点出现的次数为I次。加油站类型的兴趣点的出现频率为2/2 = 100%,停车场类型的兴趣点的出现频率也为1/2 = 50%。地图中未出现的其他类型的兴趣点的出现频率为O。上述仅是举例说明每种类型的兴趣点的名称的出现频率的计算方法,具体实施时,可根据需要设置其他的计算方法,不受上述内容的限制。由于缓存的存储空间有限,除了存储地图中兴趣点的名称之外,还存储了其他的地图数据,随着地图中兴趣点的类型的增加,缓存中可用空间会减小。为提高缓存的存储空间的复用率,可以删除缓存中长久不用的或者存储时间较长的兴趣点的名称。具体的,若兴趣点的名称以存储时间排序,则基于所述本次加载的地图中出现的兴趣点的名称,所述缓存中已存储的兴趣点的名称的存储时间及所述缓存的容量,删除所述缓存中已存储的兴趣点的名称的存储时间超过预设时间的兴趣点的名称。所述预设时间通常为5-10分钟,即删除缓存中存储时间超过该时间的兴趣点的名称。具体的,若兴趣点的名称以出现频率从低到高的顺序排序,则基于所述本次加载的地图中出现的兴趣点的名称的出现频率,所述缓存中已存储的兴趣点的名称的出现频率及所述缓存的容量,删除所述缓存中已存储的兴趣点的名称的出现频率低于预设频率的兴趣点的名称。所述预定频率通常为1% _3%,即删除缓存中出现频率低于该频率的兴趣点的名称。
基于上述情况,确定预定类型的兴趣点的名称时,不仅参考本次加载的地图中出现的兴趣点的名称及缓存中已存储的兴趣点的名称,还需要参考缓存的可用空间、兴趣点的名称的出现频率、兴趣点的名称的存储时间中的一种或几种的组合。由上述内容可知,存储在缓存中的兴趣点的名称会发生变化,因此预定类型也会发生变化。也就是说,根据本次加载的地图中出现的兴趣点的名称及缓存中已存储的兴趣点的名称,缓存的可用空间、兴趣点的名称的出现频率、兴趣点的名称的存储时间中的一种或几种的组合,重新确定预定类型,并更新存储在缓存中兴趣点的名称。具体实施时,兴趣点对应的名称以链表的形式存储在缓存中,且兴趣点的名称按照所述出现频率从低到高的顺序存储在所述链表中。该链表通常称为LRU (Least RecentlyUsed list)链表,具体的该链表基于最久未使用淘汰算法编写。以前述内容中第二种计算方法中的示例来讲,若存储名称的缓存可以存储4个名称,第一次加载地图时,地图中仅显示了加油站类型和停车场类型的兴趣点,其出现频率都是100%,则仅将这两种类型的兴趣点的名称存入缓存中,并按照出现频率排序,其他类型的兴趣点的名称可以不保存。由于这两种类型的兴趣点的出现频率相等,排序时还可以按照字母顺序排序,依次为加油站类型、停车场类型,将这两者按照上述顺序以链表的形式排列存储。加油站类型和停车场类型为本次存储在缓存中的兴趣点的名称的预定类型。第二次加载地图时,地图中仅出现了加油站类型的兴趣点,未出现停车场类型的兴趣点,此时加油站类型的兴趣点的出现频率为2/2 = 100%,停车场类型的兴趣点的出现频率也为1/2 = 50%。链表中不需要加载新的类型的兴趣点的名称,第二次加载的地图中出现的加油站类型的兴趣点的名称可以使用已经存储在链表中的加油站类型的名称(第一次加载地图时存入链表中的加油站类型的名称)。具体的可以建立加油站类型的名称在链表中的存储地址(缓存中的存储地址)与地图中的兴趣点之间的映射。相同类型的多个兴趣点与同一个存储地址的名称建立映射,使得相同类型的多个兴趣点可以共用同一个名称。由于加油站类型的兴趣点和停车场类型的兴趣点的出现频率发生变化,因此加油站类型的兴趣点的名称和停车场类型的兴趣点的名称的排列顺序需要调整,将停车场类型的兴趣点的名称放置在加油站类型的兴趣点的名称前面,新的排列顺序为:停车场类型的兴趣点的名称、加油站类型的兴趣点的名称。本实施例中,第二次加载地图时,存储在缓存中的兴趣点的名称的预定类型并未更改。按照前述的地图中兴趣点的名称的存储方法将地图中出现的兴趣点的名称存储在缓存中。每次加载地图时,基于本次加载的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,并加载该匹配的兴趣点的名称。每次加载地图时,基于所述地图中出现的兴趣点的名称可以从地图数据库,也可以从缓存中已经存储的兴趣点的名称中加载本次加载的地图中出现的兴趣点的名称。具体的,第一次加载地图时,第一次加载的地图中出现的兴趣点的类型的名称可以从地图数据库中加载,也可以先将第一次加载的地图中出现的兴趣点的名称按照前述地图中兴趣点的名称的存储方法存储在缓存中,再从缓存中加载与本次加载的地图中出现的兴趣点的名称相匹配的名称。后续加载地图时,基于本次加载的地图中出现的兴趣点的名称,先从已存储的名称(缓存中存储的名称)中寻找是否具有与其相匹配的名称,如果有,则从已存储的名称(缓存中存储的名称)中加载并显示,若没有,表示这个类型的兴趣点为新出现的,则可以从地图数据库中加载并显示,然后再将新类型的兴趣点的名称保存在缓存中保存兴趣点的名称的链表或数组中,也可以先按照前述步骤S1-S2将未存储的新出现的类型的兴趣点的名称保存在缓存中保存兴趣点的名称的链表或数组中,然后再从缓存中加载并显示。基于本次加载的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称的具体实现方式如下:从所述缓存中第一个已存储的兴趣点的名称开始,依次比对本次加载的地图中出现的当前兴趣点的名称的字符串长度与所述缓存中已存储的当前兴趣点的名称的字符串长度,若不相等,则将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称,若相等,则继续比对所述本次加载的地图中出现的当前兴趣点的名称的字符与所述缓存中已存储的当前兴趣点的名称的字符;若所述本次加载的地图中出现的当前兴趣点的名称的字符串长度与所述缓存中已存储的当前兴趣点的名称的字符串长度相等,但所述本次加载的地图中出现的当前兴趣点的名称的字符与所述缓存中已存储的当前兴趣点的名称的字符不一致,则将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称,若所述本次加载的地图中出现的当前兴趣点的名称的字符串长度与所述缓存中已存储的当前兴趣点的名称的字符串长度相等,且所述本次加载的地图中出现的当前兴趣点的名称的字符与所述缓存中已存储的当前兴趣点的名称的字符一致,则确认所述缓存中已存储的当前兴趣点的名称为与所述本次加载的地图中出现的当前兴趣点的名称相匹配的兴趣点的名称,并将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称。从缓存中获取兴趣点的名称,在具体实施时,建立所述本次加载的地图中出现的兴趣点的名称与该已存储的相匹配的兴趣点的名称的映射,根据所述映射加载该已存储的相匹配的兴趣点的名称。相同类型的多个兴趣点与同一个存储地址的名称建立映射,使得相同类型的多个兴趣点可以共用同一个名称。所述地图可以是加载至车载系统中的车载地图,也可以是网络地图,还可以是加载至手机中的手机地图,或者加载至平板电脑中的地图等。下面以具体的示例详细说明所述地图中兴趣点的名称的存储方法和加载方法。在地图的使用过程中,道路数据和兴趣点数据是使用较为频繁的几类数据。以兴趣点数据为例,一个地区的地图数据中通常包括几千个甚至上万个兴趣点,兴趣点在地图中显示时,通常以名称的形式显示,每个兴趣点都对应一个名称。所述兴趣点的名称以文本的形式存储在地图数据中。若在地图中显示兴趣点时,每显示一个兴趣点保存一次该兴趣点的名称,这不仅会降低地图的显示速度,而且名称的存储还会消耗大量的内存,造成存储资源的浪费。鉴于上述情况,在保存兴趣点的名称之前,可以按照兴趣点的名称对兴趣点进行分类,名称相同的兴趣点为一类。例如,肯德基、麦当劳、停车场、加油站等类型,还可以包括其他类型,在具体实施时可根据需要设定。名称相同的兴趣点可以共用一个名称,名称的种类与兴趣点的种类相对应,每种类型的兴趣点可以共用一个名称。每种类型的兴趣点对应的名称不同,存在几种类型的兴趣点,存储几种类型的名称(名称的种类的数目与存储的名称的数目相等)。举例来讲,地图中有100个兴趣点,将这100个兴趣点分类,其中肯德基类型的兴趣点有30个,旅馆类型的兴趣点有10个,停车场类型的兴趣点有20个,星巴克咖啡类型的兴趣点有5个,来伊份零食铺类型的兴趣点有5个,加油站类型的兴趣点有5个,麦当劳类型的兴趣点有25个。每种类型的兴趣点对应一个名称(以字母表示),分别是:肯德基A、旅馆B、停车场C、星巴克咖啡D、来伊份零食铺E、加油站F、麦当劳G,则肯德基类型的30个兴趣点共用A,旅馆类型的10个兴趣点共用B,停车场类型的20个兴趣点共用C,星巴克咖啡类型的5个兴趣点共用D,来伊份零食铺类型的5个兴趣点共用E,加油站类型的5个兴趣点共用F,麦当劳类型的25个兴趣点共用G。存储名称时,每种类型的兴趣点对应的名称存储一次,名称相同的兴趣点共用一个名称。地图中的兴趣点分了 7种类型,每种类型的兴趣点对应的名称存储一次,仅存储7次名称,名称相同的兴趣点共用一个名称,存储的名称为 7 个,分别为:A、B、C、D、E、F、G0现有技术中,上述示例存储名称的次数为100次,且存储的名称为100个。与现有技术相比,本发明的技术方案极大地缩短了加载时间,并且极大的节省了存储空间。在具体实施中,兴趣点的名称通常以链表的形式存储在缓存中,存储在链表中的名称为预定类型的兴趣点的名称。预定类型的兴趣点的名称可以按照存储时间排序存储在所述链表中,也可以按照兴趣点的名称的出现频率从低到高顺序存储在所述链表中。下面以预定类型的兴趣点的名称按照兴趣点的名称的出现频率从低到高顺序存储在所述链表中为例详细说明。预定类型基于本次加载的地图中出现的兴趣点的名称及缓存中已存储的兴趣点的名称,每种类型的兴趣点的出现频率和缓存的容量确定。由于缓存的容量有限,因此存储在缓存中的名称的数目是有限制的,并且随着显示的地图的不同,兴趣点的名称也会发生变化,存储在缓存中的名称是实时变化更新的,也就是说,存储名称的链表是随着地图的变化而不断更新其中保存的名称的。具体的,第一次加载地图时,存储在缓存中的名称的数目是根据缓存的容量,本次地图中出现的兴趣点的类型确定。例如,名称以文本(字符)的形式保存,缓存的容量是256K,则缓存中可以存储256K容量的字符,若本次地图中出现的兴趣点的名称的总字符数小于或等于256K,则本次加载的地图中出现的兴趣点的名称都可以存放在缓存中。若本次地图中出现的兴趣点的名称的总字符数大于256K,则本次地图中出现的兴趣点的名称不能全部存放在缓存中,此种情况下,可以根据每种类型的兴趣点在本次地图中的数目进行排序,在缓存中存放排名前N名的,且前N名的兴趣点的名称的总字符数小于或等于25K的兴趣点的名称存入缓存中。通常情况下,第一次加载地图时,地图中出现的所有类型的兴趣点的名称可以全部存储在缓存中。在地图的使用过程中,经常会对地图进行一系列的操作,例如,拖拽地图以显示不同的区域,对地图进行缩放等。每次对地图进行操作后,显示的地图不尽相同,每操作一次地图都要对地图进行一次刷新显示,因此每次显示的新的地图中的兴趣点也会发生变化。举例来讲,第一次显示的是a区域的地图,该区域包含较多的高速公路,因此出现了许多加油站类型的兴趣点和停车场类型的兴趣点,但是不存在来伊份零食铺类型的兴趣点,此时缓存中存储名称的链表中保存有加油站的名称和停车场的名称,但是未保存来伊份零食铺的名称;经过拖拽操作之后,第二次显示的是b区域的地图,该区域是风景区,除了加油站类型的兴趣点和停车场类型的兴趣点,还出现了许多来伊份零食铺类型的兴趣点。此时缓存中存储名称的链表中未存储来伊份零食铺的名称,若缓存的容量充裕,则对该链表进行插入操作,将来伊份零食铺的名称存入该链表中;若缓存的容量已满,则根据每种类型的兴趣点的出现频率以及预设频率删除部分名称之后,再将来伊份零食铺的名称存入该链表中。在加载b区域的地图时,基于b区域的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,具体的,可以通过先比对字符串长度再比对字符串的方法获取,具体过程如下:以加油站类型的兴趣点的名称为例,基于本次加载的地图中出现的当前兴趣点的名称的字符串长度,本实施例中当前兴趣点的名称为加油站,其字符串的长度为3,从所述链表的开始位置,依次比对所述链表中存储的每一个兴趣点的名称的字符串长度,若长度相等(都为3),则继续比对本次加载的地图中出现的当前兴趣点的名称(加油站)的字符与所述链表中的当前兴趣点的名称的字符,本次加载的地图中出现的当前兴趣点的名称的字符为:“加油站”,若所述链表中的当前兴趣点的名称的字符为停车场,虽然两者的字符串长度相等,但是字符不同,继续比对所述链表中的下一个兴趣点的名称的字符串长度;若字符串的长度不相等,则直接继续比对所述链表中的下一个兴趣点的名称的字符串长度。在加载b区域的地图时,b区域中加油站类型的兴趣点和停车场类型的兴趣点的名称从链表(第一次显示a区域时保存的链表)中获取,来伊份零食铺类型的兴趣点的名称可以先从地图数据中获取,再将来伊份零食铺类型的兴趣点的名称保存在链表中。本实施例中,先将来伊份零食铺的名称添加入该链表中(不需要再次保存加油站名称和停车场的名称,仅将来伊份零食铺的名称添加入旧的链表形成新的链表),再从新保存的链表中获取每种类型的兴趣点的名称。本实施例中,从链表中获取兴趣地的名称时,建立加油站类型等兴趣点的名称在链表中的存储地址(缓存中的存储地址)与地图中的兴趣点之间的映射。根据所述映射,从缓存中获取每种类型的兴趣地的名称。相同类型的多个兴趣点与同一个存储地址的名称建立映射,使得相同类型的多个兴趣点可以共用同一个名称。从链表中获取兴趣地的名称时,根据映射从链表中获取同一个兴趣地的名称。在后续的操作过程中,地图中可能一直未再出现加油站类型的兴趣点,但是来伊份零食铺类型的兴趣点一直出现,地图中频繁使用来伊份零食铺的名称,而不常使用加油站的名称,则来伊份零食铺的名称属于出现频率较高的名称,加油站的名称属于出现频率较低的名称。其中名称的出现频率根据地图的刷新次数和每种类型的兴趣点的出现次数有关(本事实施例中以前述第二种计算方法为例说明)。以上述内容为例,地图刷新显示了10次,仅在第一次和第二次加载的地图中出现了加油站,第二次至第十次加载的地图中,均出现了来伊份零食铺,则加油站出现的次数为2次(与地图中出现的加油站的数目无关,仅以加油站是否在地图中出现计数),来伊份零食铺出现的次数为9次,加油站的名称的出现频率为2/10 = 0.2 = 20%,来伊份零食铺的名称的出现频率为9/10 = 0.9 = 90%。其他类型的兴趣点的出现频率可依据上述方法计算,此处仅是示例说明出现频率的计算方法,具体实施时可以采取其他计算方法,且计算出的出现频率以具体计算的数值为准。具体的兴趣点的名称的存储方式可参看图2,图2是本发明实施例提供的地图的兴趣点的名称的存储结构示意图。图2中显示了收费站类型的名称(0.3%),加油站类型的名称(2% ),星巴克咖啡类型的名称(10% ),永和豆浆类型的名称(20% ),肯德基类型的名称(90% )在链表中的存储结构。每个名称对应一个出现频率,根据出现频率从低到高依次顺序排列。上述示例中,缓存的容量充裕时,收费站类型的名称等兴趣点的名称可以一直存储在链表中,但是一旦缓存的容量达到饱和,链表无法再存储新的名称时,可以删除部分兴趣点的名称。由于一些名称的出现频率较低,不经常使用,长期存储在链表中浪费了链表的存储空间,因此对于出现频率较低的名称,长久不用时可以删除,以增强链表的存储空间的复用。兴趣点的名称在链表中通常根据所述出现频率从低到高的顺序依次排列存储,因此删除名称时,通常删除出现频率小于预设频率的一个或几个名称。预设频率通常为1%-3%。另外,也可以依据地图中新出现的兴趣点的类型的数目删除链表中的名称,例如,缓存的容量达到饱和,链表无法再存储新的名称,此时地图中新显示了四个类型的兴趣点,则可以删除的链表中出现频率排名前四的名称,以清空空间来存储新出现的类型的兴趣点的名称。新加入的名称存储在链表中时,也是根据其对应的出现频率排序添加的。依据链表的特性,在存储新加入的名称时,基于新加入的名称对应的出现频率,遍历当前链表中名称的出现频率,将新加入的名称插入合适的位置。参看图2,收费站类型的名称对应的出现频率最低为0.3%,此时需要新加入一个兰州拉面类型的名称,其对应的出现频率为4%。此时删除收费站类型的名称,加入兰州拉面类型的名称。根据兰州拉面类型的名称对应的出现频率,遍历图2所示的链表中名称的出现频率,依据出现频率从低到高排列的原则,兰州拉面类型的名称(4% )应该插入加油站类型的名称(2% )和星巴克咖啡类型的名称(10% )之间,重新排序并存储后的新的链表如图3所示。图4是本发明实施例提供的地图中兴趣点的名称的存储装置的结构图。下面结合图4详细说明。所述地图中兴趣点的名称的存储装置包括:缓存I,用于存储兴趣点的名称;操作单元2,用以基于本次加载的地图中出现的兴趣点的名称和所述缓存中已存储的兴趣点的名称,添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存;操作单元2与缓存I连接,从缓存I获取已存储的兴趣点的名称,操作单元2通常还会与地图数据库4连接,获取地图数据。缓存I中已存储的兴趣点的名称以数组或链表的形式存储,兴趣点的名称按照存储时间排序存储在所述数组或链表中。操作单元2基于加载所述地图的次数及所述兴趣点的名称的出现次数确定所述兴趣点的名称的出现频率,缓存I中已存储的兴趣点的名称按照所述出现频率从低到高顺序存储在所述数组或链表中。所述地图中兴趣点的名称的存储装置还包括:
删除单元(图中未示出),用于在操作单元2添加所述本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至缓存I之前,基于所述本次加载的地图中出现的兴趣点的名称、缓存I中已存储的兴趣点的名称的存储时间及缓存I的容量,删除缓存I中已存储的兴趣点的名称的存储时间超过预设时间的兴趣点的名称。若按出现频率存储所述兴趣点的名称,所述删除单元在操作单元2添加所述本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至缓存I之前,基于所述本次加载的地图中出现的兴趣点的名称的出现频率、缓存I中已存储的兴趣点的名称的出现频率及缓存I的容量,删除缓存I中已存储的兴趣点的名称的出现频率低于预设频率的兴趣点的名称。图5是本发明实施例提供的地图中兴趣点的名称的加载装置的结构图,下面结合图4和图5详细说明。所述地图中兴趣点的名称的加载装置包括:图4所示的地图中兴趣点的名称的存储装置;加载单元3,用以在每次加载地图时,基于本次加载的地图中出现的兴趣点的名称在缓存I中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,并加载该匹配的兴趣点的名称;加载单元3与缓存I相连,在缓存I中查找相匹配的兴趣点的名称,加载单元3与地图数据库4相连,获取地图数据。具体的,加载单元3包括:比对单元,用以从缓存I中第一个已存储的兴趣点的名称开始,依次比对本次加载的地图中出现的当前兴趣点的名称的字符串长度与缓存I中已存储的当前兴趣点的名称的字符串长度,若不相等,则所述比对单元将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称,若相等,则所述比对单元继续比对所述本次加载的地图中出现的当前兴趣点的名称的字符与缓存I中已存储的当前兴趣点的名称的字符;若所述本次加载的地图中出现的当前兴趣点的名称的字符串长度与缓存I中已存储的当前兴趣点的名称的字符串长度相等,但所述本次加载的地图中出现的当前兴趣点的名称的字符与缓存I中已存储的当前兴趣点的名称的字符不一致,则所述比对单元将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称,若所述本次加载的地图中出现的当前兴趣点的名称的字符串长度与缓存I中已存储的当前兴趣点的名称的字符串长度相等,且所述本次加载的地图中出现的当前兴趣点的名称的字符与缓存I中已存储的当前兴趣点的名称的字符一致,则所述比对单元确认缓存I中已存储的当前兴趣点的名称为与所述本次加载的地图中出现的当前兴趣点的名称相匹配的兴趣点的名称,并将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称。加载单元3还包括:映射单元,用以在缓存I中已存储的兴趣点的名称中存在与所述本次加载的地图中出现的兴趣点的名称相匹配的名称时,建立所述本次加载的地图中出现的兴趣点的名称与该已存储的相匹配的兴趣点的名称的映射;处理单元,用以根据所述映射加载该已存储的相匹配的兴趣点的名称。
图4或图5所示的地图中兴趣点的名称的存储装置和/或加载装置可以集成在手机、电脑、平板电脑、车载系统中,应用在地图的存储、加载、显示技术中,以实现所述地图的图标的存储方法。本发明的技术方案至少具有以下有益效果:每次加载地图时,添加至缓存中的兴趣点的名称不同于缓存中已存储的兴趣点的名称,也就是不重复存储相同的兴趣点的名称,这样名称相同的兴趣点的名称仅存储一次,节省了缓存的存储空间;而且从所述缓存中加载兴趣点的名称时,名称相同的兴趣点共用一个名称,也提高了兴趣点的名称的利用率。将兴趣点的名称按照出现频率从低到高的顺序或者存储时间的先后顺序以链表或数组的形式存储在缓存中,并根据每一次新加载的地图,删除当前链表或数组中出现频率低或者存储时间长的兴趣点的名称,并添加新出现的兴趣点的名称。这不仅可以进一步的节省存储空间,而且存储空间可以复用,新出现的兴趣点的名称可以复用清空的存储空间。每次加载地图时,基于本次加载的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,并加载该匹配的兴趣点的名称。这不仅保证了加载的兴趣点的名称的正确性,而且提高了兴趣点的名称的加载速度。本次加载的地图中出现的名称相同的兴趣点,共用缓存中的同一个兴趣点的名称,实现了一个兴趣点的名称供多个兴趣点使用的效果。建立所述本次加载的地图中出现的兴趣点的名称与该已存储的相匹配的兴趣点的名称的映射,根据所述映射加载该已存储的兴趣点的名称。这提高了加载兴趣点的名称的速度,提高了效率。本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
权利要求
1.一种地图中兴趣点的名称的存储方法,其特征在于,包括: 基于本次加载的地图中出现的兴趣点的名称和缓存中已存储的兴趣点的名称,添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存。
2.如权利要求1所述的兴趣点的名称的存储方法,其特征在于,所述缓存中已存储的兴趣点的名称以数组或链表的形式存储。
3.如权利要求2所述的兴趣点的名称的存储方法,其特征在于,所述缓存中已存储的兴趣点的名称按照存储时间排序存储在所述数组或链表中。
4.如权利要求2所述的兴趣点的名称的存储方法,其特征在于,基于加载所述地图的次数及所述兴趣点的名称的出现次数确定所述兴趣点的名称的出现频率,所述缓存中已存储的兴趣点的名称按照所述出现频率从低到高顺序存储在所述数组或链表中。
5.如权利要求3所述的兴趣点的名称的存储方法,其特征在于,在添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存之前还包括: 基于所述本次加载的地图中出现的兴趣点的名称、所述缓存中已存储的兴趣点的名称的存储时间及所述缓存的容量,删除所述缓存中已存储的兴趣点的名称的存储时间超过预设时间的兴趣点的名称。
6.如权利要求4所述的兴趣点的名称的存储方法,其特征在于,在添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存之前还包括: 基于所述本次加载的地图中出现的兴趣点的名称的出现频率、所述缓存中已存储的兴趣点的名称的出 现频率及所述缓存的容量,删除所述缓存中已存储的兴趣点的名称的出现频率低于预设频率的兴趣点的名称。
7.如权利要求1所述的兴趣点的名称的存储方法,其特征在于,所述地图为车载地图。
8.—种地图中兴趣点的名称的存储装置,其特征在于,包括: 缓存,用于存储兴趣点的名称; 操作单元,用以基于本次加载的地图中出现的兴趣点的名称和所述缓存中已存储的兴趣点的名称,添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存。
9.如权利要求8所述的兴趣点的名称的存储装置,其特征在于,所述缓存中已存储的兴趣点的名称以数组或链表的形式存储。
10.如权利要求9所述的兴趣点的名称的存储装置,其特征在于,所述缓存中已存储的兴趣点的名称按照存储时间排序存储在所述数组或链表中。
11.如权利要求9所述的兴趣点的名称的存储装置,其特征在于,所述操作单元基于加载所述地图的次数及所述兴趣点的名称的出现次数确定所述兴趣点的名称的出现频率,所述缓存中已存储的兴趣点的名称按照所述出现频率从低到高顺序存储在所述数组或链表中。
12.如权利要求10所述的兴趣点的名称的存储装置,其特征在于,还包括:删除单元,用于在所述操作单元添加所述本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存之前,基于所述本次加载的地图中出现的兴趣点的名称、所述缓存中已存储的兴趣点的名称的存储时间及所述缓存的容量,删除所述缓存中已存储的兴趣点的名称的存储时间超过预设时间的兴趣点的名称。
13.如权利要求11所述的兴趣点的名称的存储装置,其特征在于,还包括:删除单元,用于在所述操作单元添加所述本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存之前,基于所述本次加载的地图中出现的兴趣点的名称的出现频率、所述缓存中已存储的兴趣点的名称的出现频率及所述缓存的容量,删除所述缓存中已存储的兴趣点的名称的出现频率低于预设频率的兴趣点的名称。
14.如权利要求8所述的兴趣点的名称的存储装置,其特征在于,所述地图为车载地图。
15.一种地图中兴趣点的名称的加载方法,其特征在于,包括: 利用权利要求1至7任一项所述的地图中兴趣点的名称的存储方法存储兴趣点的名称; 每次加载地图时,基于本次加载的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,并加载该匹配的兴趣点的名称。
16.如权利要求15所述的地图中兴趣点的名称的加载方法,其特征在于,所述基于本次加载的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称包括: 从所述缓存中第一个已存储的兴趣点的名称开始,依次比对本次加载的地图中出现的当前兴趣点的名称的字符串长度与所述缓存中已存储的当前兴趣点的名称的字符串长度,若不相等,则将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称,若相等,则继续比对所述本次加载的地图中出现的当前兴趣点的名称的字符与所述缓存中已存储的当前兴趣点的名称的字符; 若所述本次加载的地图中出现的当前兴趣点的名称的字符串长度与所述缓存中已存储的当前兴趣点的名称的字符串长度相等,但所述本次加载的地图中出现的当前兴趣点的名称的字符与所述缓存中已存储的当前兴趣点的名称的字符不一致,则将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称,若所述本次加载的地图中出现的当前兴趣点的名称的字符串长度与所述缓存中已存储的当前兴趣点的名称的字符串长度相等,且所述本次加载的地图中出现的当前兴趣点的名称的字符与所述缓存中已存储的当前兴趣点的名称的字符一致,则确认所述缓存中已存储的当前兴趣点的名称为与所述本次加载的地图中出现的当前兴趣点的名称相匹配的兴趣点的名称,并将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称。
17. 如权利要求16所述的地图中兴趣点的名称的加载方法,其特征在于,所述加载该匹配的兴趣点的名称包括: 在所述缓存中已存储的兴趣点的名称中存在与所述本次加载的地图中出现的兴趣点的名称相匹配的兴趣点的名称时,建立所述本次加载的地图中出现的兴趣点的名称与该已存储的相匹配的兴趣点的名称的映射,根据所述映射加载该已存储的相匹配的兴趣点的名称。
18.—种地图中兴趣点的名称的加载装置,其特征在于,包括: 如权利要求8至14任一项所述的地图中兴趣点的名称的存储装置; 加载单元,用以在每次加载地图时,基于本次加载的地图中出现的兴趣点的名称在缓存中已存储的兴趣点的名称中查找相匹配的兴趣点的名称,并加载该匹配的兴趣点的名称。
19.如权利要求18所述的兴趣点的名称的加载装置,其特征在于,所述加载单元包括: 比对单元,用以从所述缓存中第一个已存储的兴趣点的名称开始,依次比对本次加载的地图中出现的当前兴趣点的名称的字符串长度与所述缓存中已存储的当前兴趣点的名称的字符串长度,若不相等,则所述比对单元将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称,若相等,则所述比对单元继续比对所述本次加载的地图中出现的当前兴趣点的名称的字符与所述缓存中已存储的当前兴趣点的名称的字符; 若所述本次加载的地图中出现的当前兴趣点的名称的字符串长度与所述缓存中已存储的当前兴趣点的名称的字符串长度相等,但所述本次加载的地图中出现的当前兴趣点的名称的字符与所述缓存中已存储的当前兴趣点的名称的字符不一致,则所述比对单元将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称,若所述本次加载的地图中出现的当前兴趣点的名称的字符串长度与所述缓存中已存储的当前兴趣点的名称的字符串长度相等,且所述本次加载的地图中出现的当前兴趣点的名称的字符与所述缓存中已存储的当前兴趣点的名称的字符一致,则所述比对单元确认所述缓存中已存储的当前兴趣点的名称为与所述本次加载的地图中出现的当前兴趣点的名称相匹配的兴趣点的名称,并将本次加载的地图中出现的下一个兴趣点的名称设置为本次加载的地图中出现的当前兴趣点的名称。
20.如权利要求19所述的兴趣点的名称的加载装置,其特征在于,所述加载单元还包括: 映射单元,用以在所述缓存中已存储的兴趣点的名称中存在与所述本次加载的地图中出现的兴趣点的名称相匹配的名称时,建立所述本次加载的地图中出现的兴趣点的名称与该已存储的相匹配的兴趣点的名称的映射; 处理单元,用以根据所述映射加载该已存储的相匹配的兴趣点的名称。
21.一种车载系统,其特征在于,包括:权利要求8至14任一项所述的地图中兴趣点的名称的存储装置。
22.—种车载系统,其特征在于,包括:权利要求18至20任一项所述的地图中兴趣点的名称的加载装置。
全文摘要
一种地图中兴趣点的名称的存储方法及装置,地图中兴趣点的名称的加载方法及装置,车载系统,所述地图中兴趣点的名称的存储方法包括获取地图数据,基于本次加载的地图中出现的兴趣点的名称和缓存中已存储的兴趣点的名称,添加本次加载的地图中出现的不同于已存储的兴趣点的名称的兴趣点的名称至所述缓存。本发明的技术方案提高了地图的加载速度,且降低了对资源的耗损。
文档编号G01C21/36GK103137010SQ20111039272
公开日2013年6月5日 申请日期2011年11月30日 优先权日2011年11月30日
发明者王军 申请人:上海博泰悦臻电子设备制造有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1