著录项信息
专利名称 | 一种车辆导航系统中兴趣点信息的快速检索方法 |
申请号 | CN200910079303.6 | 申请日期 | 2009-03-06 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2009-07-29 | 公开/公告号 | CN101493340 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G01C21/34 | IPC分类号 | G;0;1;C;2;1;/;3;4;;;G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 清华大学 | 申请人地址 | 北京市海淀区清华园
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 清华大学 | 当前权利人 | 清华大学 |
发明人 | 连小珉;杨殿阁;杨扬;李挺;张涛 |
代理机构 | 北京清亦华知识产权代理事务所(普通合伙) | 代理人 | 罗文群 |
摘要
本发明涉及一种车辆导航系统中兴趣点信息的快速检索方法,属于汽车电子技术领域。首先将原始兴趣点名称的文字拼音首字母转化为字符串形式的检索文件,并建立原始兴趣点编号与每个兴趣点在检索文件中的起始位置的第一映射表;建立数据文件,将原始兴趣点的信息放到其相关位置;建立数据文件各信息的编号、信息长度与该信息相对数据文件起始位置的偏移量的第二映射表;根据检索关键词,遍历检索文件,得到关键词在字符串中的位置,根据该位置从第一映射表中检索到编号;根据编号,从第二映射表中得到兴趣点的所有信息。本方法实现了对检索文件的快速遍历,使得整个检索过程较快完成,且检索的兴趣点信息准确完整,满足实际车辆导航的需求。
1.一种车辆导航系统中兴趣点信息的快速检索方法,其特征在于该检索方法包括以下步骤:
(1-1)将车辆导航系统中所有描述原始兴趣点名称的文字拼音首字母转化为字符串形式的检索文件,并建立一个车辆导航系统中所有原始兴趣点编号与每个兴趣点在上述字符串形式的检索文件中的起始位置之间的第一映射表;
(1-2)按设定的格式建立一个数据文件,将车辆导航系统中所有描述原始兴趣点的信息放到数据文件的相关位置;
(1-3)建立一个上述数据文件中各信息的编号、信息长度与该信息相对数据文件起始位置的偏移量三者之间的第二映射表;
(1-4)根据用户输入的检索关键词,遍历上述字符串形式的检索文件,得到输入的关键词在上述字符串形式的检索文件中的位置,根据该位置,从上述第一映射表中检索到与该位置相对应的待检索兴趣点编号;
(1-5)根据上述待检索兴趣点编号,从上述第二映射表中得到待检索兴趣点相对上述数据文件起始位置的偏移量及信息长度,从而得到待检索兴趣点的所有信息。
2.如权利要求1所述的检索方法,其特征在于所述的步骤(1-1)中,将描述原始兴趣点名称的文字拼音首字母转化为字符串形式的检索文件的方法,包括以下步骤:
(2-1)将描述原始兴趣点名称的文字拼音首字母排列成一张线性表,并按英文字母的顺序对线性表中的各行信息重新排序,得到原始线性表;
(2-2)对上述原始线性表中,每相邻两行信息进行比较,每行中记录与前一行信息相比的相同字母数,并记录不相同部分,信息格式为“相同字母数”+“不相同部分字母”,得到一张冗余消除后的压缩线性表;
(2-3)将上述压缩线性表中的各行信息相互连接,得到字符串形式的检索文件。
3.如权利要求1所述的检索方法,其特征在于所述的步骤(1-2)中,原始兴趣点的信息包括经度、纬度、兴趣点类型、名称、地址、电话、电话区号及邮编。
4.如权利要求1所述的检索方法,其特征在于所述的步骤(1-4)中,根据用户输入的检索关键词,遍历字符串形式的检索文件,得到输入的关键词在字符串形式的检索文件中的位置的方法,包括以下步骤:
(4-1)从上述字符串形式的检索文件中读取第一个字符,称为当前字母,同时记录当前字母在原始线性表中的位置,称为当前字母原始信息位置,第一个字符的位置为1;
(4-2)当上述当前字母与用户输入关键词的第一个字母相同时,则建立一个由上述当前字母与上述当前字母原始信息位置组成的集合;
(4-3)从上述字符串形式的检索文件中读取下一个字符,若该字符为字母,则令上述当前字母为该字母,令上述当前字母原始信息位置增加1,并进入(4-4)步;若该字符为数值,则令上述当前字母原始信息位置等于该数值,并重复(4-3)步;
(4-4)当步骤(4-3)中最后得到的当前字母与用户输入关键词的第一个字母相同时,则建立一个由步骤(4-3)中最后得到的当前字母与步骤(4-3)中最后得到的当前字母原始信息位置组成的集合;
(4-5)将步骤(4-3)中最后得到的当前字母与步骤(4-2)的集合比较,若步骤(4-3)中最后得到的当前字母与步骤(4-2)集合中的字母相同,且步骤(4-3)中最后得到的当前字母原始信息位置等于步骤(4-2)集合中的原始信息位置加1,此时,当步骤(4-2)集合中的当前字母为用户输入关键词的最后一个字母时,则根据步骤(4-3)中最后得到的当前字母在上述字符串形式的检索文件中的位置,通过第一映射表得到相应兴趣点编号,输出该编号,当步骤(4-2)集合中的当前字母不是用户输入关键词的最后一个字母时,则改变上述步骤(4-2)的集合,使集合中的当前字母为用户输入关键词的下一个字母,使集合中的当前字母原始信息位置为步骤(4-3)中最后得到的当前字母原始信息位置;若步骤(4-3)中最后得到的当前字母与步骤(4-2)集合中的字母不相同,或步骤(4-3)中最后得到的当前字母原始信息位置不等于步骤(4-2)集合中的原始信息位置加1,则删除步骤(4-2)的集合;
(4-6)将步骤(4-3)中最后得到的当前字母依次与步骤(4-4)的集合比较,若步骤(4-3)中最后得到的当前字母与步骤(4-4)集合中的字母相同,且步骤(4-3)中最后得到的当前字母原始信息位置等于步骤(4-4)集合中的原始信息位置加1,此时,当步骤(4-4)集合中的当前字母为用户输入关键词的最后一个字母时,则根据步骤(4-3)中最后得到的当前字母在上述字符串形式的检索文件中的位置,通过第一映射表得到相应兴趣点编号,输出该编号,当步骤(4-4)集合中的当前字母不是用户输入关键词的最后一个字母时,则改变上述步骤(4-4)的集合,使集合中的当前字母为用户输入关键词的下一个字母,使集合中的当前字母原始信息位置为步骤(4-3)中最后得到的当前字母原始信息位置;若步骤(4-3)中最后得到的当前字母与步骤(4-4)集合中的字母不相同,或步骤(4-3)中最后得到的当前字母原始信息位置不等于步骤(4-4)集合中的原始信息位置加1,则删除步骤(4-4)的集合;
(4-7)重复步骤(4-2)-(4-6),直至遍历上述字符串形式的检索文件。
一种车辆导航系统中兴趣点信息的快速检索方法\n技术领域\n[0001] 本发明涉及一种车辆导航系统中兴趣点信息的快速检索方法,属于汽车电子技术领域。\n背景技术\n[0002] 随着嵌入式计算机和地理信息系统的发展,越来越多的车辆开始安装使用车辆智能导航系统。其中,兴趣点检索可以帮助司机了解目的地位置,或周边设施情况,是车辆智能导航系统的重要组成部分。\n[0003] 拼音首字母检索是使用最广泛的兴趣点检索方法之一,该方法主要依赖用户输入的英文字母序列和兴趣点名称拼音的首字母序列之间的匹配。当用户输入的关键词字符串与地图数据中某兴趣点名称拼音的首字母序列达到某种吻合条件,如包含,或从首部起一致,则输出该兴趣点的相关信息,当输出全部满足条件的兴趣点信息后,即完成检索。\n[0004] 对于车辆导航系统中的检索,其难点在于检索过程受到嵌入式系统计算能力、存储设备的限制,为了实现用户可以接受的检索速度,往往不得不使用较大的外存或者较大的内存。\n[0005] 现有涉及兴趣点检索的技术中,如发明专利“汽车导航系统的信息检索系统”(专利申请号200610097667.3,公开日期2008年6月4日),采用由区域、行业、名称构成三级索引,其中区域和行业索引为数值排序索引,而名称索引则是非排序倒置文件索引,先通过数值索引缩小检索范围,在较小范围的名称索引中进行名称匹配;在名称匹配中,利用名称的相关性建立的索引有助于减少匹配次数。其不足在于一是需要建立较大体积的索引,占用较多的外存,二是非排序的倒置文件名称索引对拼音首字母检索词的索引效果不好。\n[0006] 发明专利“一种联网车载导航设备中兴趣点按拼音首字母检索的方法”(专利申请号200710008536.8,公开日期2008年4月16日)将拼音首字母字符串拆分为多个双字母组,建立记录包含特定双字母的兴趣点记录的索引,检索时将关键词作类似拆分,分别进行检索后将结果求交集。其不足在于一是索引文件占用较多的外存,二是检索时不能保持原关键词的字母顺序,结果的匹配部分只保持原关键词的字母组成。\n[0007] 发明专利“信息检索装置”(专利申请号200710151568.3,公开日期2008年4月\n30日)通过对关键词进行分词,对其中的词元进行检索后组合结果。其不足在于分词的准确和关键词的词义完整对检索的准确性限制较大,有可能无法得到完整的匹配结果。\n发明内容\n[0008] 本发明的目的是提出一种车辆导航系统中兴趣点信息的快速检索方法,以解决目前检索技术中,索引文件占用系统外存、检索过程占用内存及检索速度三者难以实现共同优化的问题,以确保得到完整准确的检索结果。\n[0009] 本发明提出的车辆导航系统中兴趣点信息的快速检索方法,包括以下步骤:\n[0010] (1-1)将车辆导航系统中所有描述原始兴趣点名称的文字拼音首字母转化为字符串形式的检索文件,并建立一个车辆导航系统中所有原始兴趣点编号与每个兴趣点在上述字符串形式的检索文件中的起始位置之间的第一映射表;\n[0011] (1-2)按设定的格式建立一个数据文件,将车辆导航系统中所有描述原始兴趣点的信息放到数据文件的相关位置;\n[0012] (1-3)建立一个上述数据文件中各信息的编号、信息长度与该信息相对数据文件起始位置的偏移量三者之间的第二映射表;\n[0013] (1-4)根据用户输入的检索关键词,遍历上述字符串形式的检索文件,得到输入的关键词在上述字符串中的位置,根据该位置,从上述第一映射表中检索到与该位置相对应的待检索兴趣点编号;\n[0014] (1-5)根据上述待检索兴趣点编号,从上述第二映射表中得到待检索兴趣点相对上述数据文件起始位置的偏移量及信息长度,从而得到待检索兴趣点的所有信息。\n[0015] 上述方法的步骤(1-1)中,所述的将描述原始兴趣点名称的文字拼音首字母转化为字符串形式的检索文件的方法,包括以下步骤:\n[0016] (2-1)将描述原始兴趣点名称的文字拼音首字母排列成一张线性表,并按英文字母的顺序对线性表中的各行信息重新排序,得到原始线性表;\n[0017] (2-2)对上述原始线性表中,每相邻两行信息进行比较,每行中记录与前一行信息相比的相同字母数,并记录不相同部分,信息格式为“相同字母数”+“不相同部分字母”,得到一张冗余消除后的压缩线性表;\n[0018] (2-3)将上述压缩线性表中的各行信息相互连接,得到字符串形式的检索文件。\n[0019] 上述方法的步骤(1-2)中,所述的原始兴趣点的信息包括经度、纬度、兴趣点类型、名称、地址、电话、电话区号及邮编。\n[0020] 上述方法的步骤(1-4)中,根据用户输入的检索关键词,遍历字符串形式的检索文件,得到输入的关键词在字符串中的位置的方法,包括以下步骤:\n[0021] (4-1)从上述字符串形式的检索文件中读取第一个字符,称为当前字母,同时记录当前字母在原始线性表中的位置,称为当前字母原始信息位置,第一个字符的位置为1;\n[0022] (4-2)当上述当前字母与用户输入关键词的第一个字母相同时,则建立一个由上述当前字母与上述当前字母原始信息位置组成的集合;\n[0023] (4-3)从上述字符串形式的检索文件中读取下一个字符,若该字符为字母,则令上述当前字母为该字母,令上述当前字母原始信息位置增加1,并进入(4-4)步;若该字符为数值,则令上述当前字母原始信息位置等于该数值,并重复(4-3)步;\n[0024] (4-4)当步骤(4-3)中最后得到的当前字母与用户输入关键词的第一个字母相同时,则建立一个由步骤(4-3)中最后得到的当前字母与步骤(4-3)中最后得到的当前字母原始信息位置组成的集合;\n[0025] (4-5)将步骤(4-3)中最后得到的当前字母与步骤(4-2)的集合比较,若步骤(4-3)中最后得到的当前字母与步骤(4-2)集合中的字母相同,且步骤(4-3)中最后得到的当前字母原始信息位置等于步骤(4-2)集合中的原始信息位置加1,此时,当步骤(4-2)集合中的当前字母为用户输入关键词的最后一个字母时,则根据步骤(4-3)中最后得到的当前字母在上述字符串形式的检索文件中的位置,通过第一映射表得到相应兴趣点编号,输出该编号,当步骤(4-2)集合中的当前字母不是用户输入关键词的最后一个字母时,则改变上述步骤(4-2)的集合,使集合中的当前字母为用户输入关键词的下一个字母,使集合中的当前字母原始信息位置为步骤(4-3)中最后得到的当前字母原始信息位置;若步骤(4-3)中最后得到的当前字母与步骤(4-2)集合中的字母不相同,或步骤(4-3)中最后得到的当前字母原始信息位置不等于步骤(4-2)集合中的原始信息位置加1,则删除步骤(4-2)的集合;\n[0026] (4-6)将步骤(4-3)中最后得到的当前字母依次与步骤(4-4)的集合比较,若步骤(4-3)中最后得到的当前字母与步骤(4-4)集合中的字母相同,且步骤(4-3)中最后得到的当前字母原始信息位置等于步骤(4-4)集合中的原始信息位置加1,此时,当步骤(4-4)集合中的当前字母为用户输入关键词的最后一个字母时,则根据步骤(4-3)中最后得到的当前字母在上述字符串形式的检索文件中的位置,通过第一映射表得到相应兴趣点编号,输出该编号,当步骤(4-4)集合中的当前字母不是用户输入关键词的最后一个字母时,则改变上述步骤(4-4)的集合,使集合中的当前字母为用户输入关键词的下一个字母,使集合中的当前字母原始信息位置为步骤(4-3)中最后得到的当前字母原始信息位置;若步骤(4-3)中最后得到的当前字母与步骤(4-4)集合中的字母不相同,或步骤(4-3)中最后得到的当前字母原始信息位置不等于步骤(4-4)集合中的原始信息位置加1,则删除步骤(4-4)的集合;\n[0027] (4-7)重复步骤(4-2)-(4-6),直至遍历上述字符串形式的检索文件。\n[0028] 本发明提出的车辆导航系统中兴趣点信息的快速检索方法,其优点是:除了包含兴趣点名称拼音首字母信息的检索文件,兴趣点信息在检索文件中的位置与兴趣点编号的映射表,以及兴趣点编号与兴趣点信息在数据文件中存储位置的映射表外,本方法不需要制作其他额外索引文件,且对检索文件进行了压缩处理,很大程度上减少了兴趣点信息占用的系统外存空间;在检索过程中,只需要读入字符串形式的检索文件,可以有效控制系统内存使用大小;因此本方法在占用系统外存和内存都较小的前提下,实现了对检索文件的快速遍历,使得整个检索过程较快完成,且检索的兴趣点信息准确完整,满足实际车辆导航的需求。\n附图说明\n[0029] 图1为本发明方法中拼音首字母表压缩方法的示意图。\n[0030] 图2为本发明方法中数据文件中的各兴趣点记录的格式。\n[0031] 图3为本发明方法实施例的检索结果示意图。\n具体实施方式\n[0032] 本发明提出的车辆导航系统中兴趣点信息的快速检索方法,包括以下步骤:\n[0033] (1)将车辆导航系统中所有描述原始兴趣点名称的文字拼音首字母转化为字符串形式的检索文件,并建立一个车辆导航系统中所有原始兴趣点编号与每个兴趣点在上述字符串形式的检索文件中的起始位置之间的第一映射表;\n[0034] (2)按设定的格式建立一个数据文件,将车辆导航系统中所有描述原始兴趣点的信息放到数据文件的相关位置;\n[0035] (3)建立一个上述数据文件中各信息的编号、信息长度与该信息相对数据文件起始位置的偏移量三者之间的第二映射表;\n[0036] (4)根据用户输入的检索关键词,遍历上述字符串形式的检索文件,得到输入的关键词在上述字符串中的位置,根据该位置,从上述第一映射表中检索到与该位置相对应的待检索兴趣点编号;\n[0037] (5)根据上述待检索兴趣点编号,从上述第二映射表中得到待检索兴趣点相对上述数据文件起始位置的偏移量及信息长度,从而得到待检索兴趣点的所有信息。\n[0038] 以下结合附图,详细介绍本发明分内容:\n[0039] 首先加工检索文件及第一映射表。检索文件用于存储所有描述原始兴趣点名称的文字拼音首字母信息,通过用户输入关键词与检索文件内各信息的比较,寻找符合用户输入关键词的兴趣点,第一映射表将检索文件中兴趣点的起始位置与兴趣点编号信息相对应,使得在检索文件中寻找到符合条件的兴趣点信息时,可以找到该兴趣点的编号。将兴趣点名称拼音首字母信息转化为字符串形式的检索文件的加工采用基于相邻字串的冗余消除的压缩算法,如图1所示,方法步骤如下:\n[0040] (1)将描述原始兴趣点名称的文字拼音首字母排列成一张线性表,并按英文字母的顺序对线性表中的各行信息重新排序,得到原始线性表;\n[0041] (2)对上述原始线性表中,每相邻两行信息进行比较,每行中记录与前一行信息相比的相同字母数,并记录不相同部分,信息格式为“相同字母数”+“不相同部分字母”,得到一张冗余消除后的压缩线性表;\n[0042] (3)将上述压缩线性表中的各行信息相互连接,得到字符串形式的检索文件。\n[0043] 其次,按图2所示设定的格式建立一个数据文件,将车辆导航系统中所有描述原始兴趣点的信息放到数据文件的相关位置,原始兴趣点的信息包括经度、纬度、兴趣点类型、名称、地址、电话、电话区号及邮编。\n[0044] 然后,建立一个上述数据文件中各信息的编号、信息长度与该信息相对数据文件起始位置的偏移量三者之间的第二映射表。由于数据文件的各兴趣点信息是不等长的,因此需要第二映射表将兴趣点编号和兴趣点在数据文件中所在位置相对应,使得通过查找检索文件得到兴趣点编号后,可以找到该编号对应的数据文件中的兴趣点信息。\n[0045] 完成上述各文件的建立后,可以在此基础上进行兴趣点的检索。\n[0046] 首先根据用户输入的检索关键词,遍历上述字符串形式的检索文件,得到输入的关键词在上述字符串中的位置,根据该位置,从上述第一映射表中检索到与该位置相对应的待检索兴趣点编号。遍历检索文件的方法如下:\n[0047] (1)从上述字符串形式的检索文件中读取第一个字符,称为当前字母,同时记录当前字母在原始线性表中的位置,称为当前字母原始信息位置,第一个字符的位置为1;\n[0048] (2)当上述当前字母与用户输入关键词的第一个字母相同时,则建立一个由上述当前字母与上述当前字母原始信息位置组成的集合;\n[0049] (3)从上述字符串形式的检索文件中读取下一个字符,若该字符为字母,则令上述当前字母为该字母,令上述当前字母原始信息位置增加1,并进入步骤(4);若该字符为数值,则令上述当前字母原始信息位置等于该数值,并重复步骤(3);\n[0050] (4)当步骤(3)中最后得到的当前字母与用户输入关键词的第一个字母相同时,则建立一个由步骤(3)中最后得到的当前字母与步骤(3)中最后得到的当前字母原始信息位置组成的集合;\n[0051] (5)将步骤(3)中最后得到的当前字母与步骤(2)的集合比较,若步骤(3)中最后得到的当前字母与步骤(2)集合中的字母相同,且步骤(3)中最后得到的当前字母原始信息位置等于步骤(2)集合中的原始信息位置加1,此时,当步骤(2)集合中的当前字母为用户输入关键词的最后一个字母时,则根据步骤(3)中最后得到的当前字母在上述字符串形式的检索文件中的位置,通过第一映射表得到相应兴趣点编号,输出该编号,当步骤(2)集合中的当前字母不是用户输入关键词的最后一个字母时,则改变上述步骤(2)的集合,使集合中的当前字母为用户输入关键词的下一个字母,使集合中的当前字母原始信息位置为步骤(3)中最后得到的当前字母原始信息位置;若步骤(3)中最后得到的当前字母与步骤(2)集合中的字母不相同,或步骤(3)中最后得到的当前字母原始信息位置不等于步骤(2)集合中的原始信息位置加1,则删除步骤(2)的集合;\n[0052] (6)将步骤(3)中最后得到的当前字母依次与步骤(4)的集合比较,若步骤(3)中最后得到的当前字母与步骤(4)集合中的字母相同,且步骤(3)中最后得到的当前字母原始信息位置等于步骤(4)集合中的原始信息位置加1,此时,当步骤(4)集合中的当前字母为用户输入关键词的最后一个字母时,则根据步骤(3)中最后得到的当前字母在上述字符串形式的检索文件中的位置,通过第一映射表得到相应兴趣点编号,输出该编号,当步骤(4)集合中的当前字母不是用户输入关键词的最后一个字母时,则改变上述步骤(4)的集合,使集合中的当前字母为用户输入关键词的下一个字母,使集合中的当前字母原始信息位置为步骤(3)中最后得到的当前字母原始信息位置;若步骤(3)中最后得到的当前字母与步骤(4)集合中的字母不相同,或步骤(3)中最后得到的当前字母原始信息位置不等于步骤(4)集合中的原始信息位置加1,则删除步骤(4)的集合;\n[0053] (7)重复步骤(2)-(6),直至遍历上述字符串形式的检索文件。\n[0054] 在获得待检索兴趣点编号后,查找第二映射表可以得到待检索兴趣点相对上述数据文件起始位置的偏移量及信息长度,依此从数据文件中得到待检索兴趣点的所有信息。\n[0055] 本发明的一个实施例中,采用上述方法在一台嵌入式微机中,实现大量兴趣点的快速检索方法,采用Visual C++编程实现,并集成于实际车辆导航系统中。该系统向车辆用户提供检索兴趣点的界面,当用户输入作为关键词的字母串时,显示拼音首字母包括该字母串的所有兴趣点名称。\n[0056] 该系统在北京市的实际检索情况如图3所示。该系统内北京市所有兴趣点数量约为14万,其检索文件大小约为600K,第一映射表大小约为600K,第二映射表大小约为850K,数据文件大小约为6M;当用户没有输入时,显示北京市的所有兴趣点点名称;当用户输入关键词“abb”时,显示了三个满足关键词的兴趣点名称,检索速度在0.2秒以内,结果准确。
法律信息
- 2011-04-27
- 2009-09-23
- 2009-07-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |