一种车辆导航系统中兴趣点信息的快速检索方法

文档序号:6150837阅读:109来源:国知局
专利名称:一种车辆导航系统中兴趣点信息的快速检索方法
技术领域
本发明涉及一种车辆导航系统中兴趣点信息的快速检索方法,属于汽车电子技术领域。
背景技术
随着嵌入式计算机和地理信息系统的发展,越来越多的车辆开始安装使用车辆智能导 航系统。其中,兴趣点检索可以帮助司机了解目的地位置,或周边设施情况,是车辆智能 导航系统的重要组成部分。
拼音首字母检索是使用最广泛的兴趣点检索方法之一,该方法主要依赖用户输入的英 文字母序列和兴趣点名称拼音的首字母序列之间的匹配。当用户输入的关键词字符串与地 图数据中某兴趣点名称拼音的首字母序列达到某种吻合条件,如包含,或从首部起一致, 则输出该兴趣点的相关信息,当输出全部满足条件的兴趣点信息后,即完成检索。
对于车辆导航系统中的检索,其难点在于检索过程受到嵌入式系统计算能力、存储设
备的限制,为了实现用户可以接受的检索速度,往往不得不使用较大的外存或者较大的内 存。
现有涉及兴趣点检索的技术中,如发明专利"汽车导航系统的信息检索系统"(专利
申请号200610097667.3,
公开日期2008年6月4日),采用由区域、行业、名称构成三 级索引,其中区域和行业索引为数值排序索引,而名称索引则是非排序倒置文件索引,先 通过数值索引縮小检索范围,在较小范围的名称索引中进行名称匹配;在名称匹配中,利 用名称的相关性建立的索引有助于减少匹配次数。其不足在于一是需要建立较大体积的索 引,占用较多的外存,二是非排序的倒置文件名称索引对拼音首字母检索词的索引效果不 好。
发明专利"一种联网车载导航设备中兴趣点按拼音首字母检索的方法"(专利申请号 200710008536.8,
公开日期2008年4月16日)将拼音首字母字符串拆分为多个双字母 组,建立记录包含特定双字母的兴趣点记录的索引,检索时将关键词作类似拆分,分别进 行检索后将结果求交集。其不足在于一是索引文件占用较多的外存,二是检索时不能保持 原关键词的字母顺序,结果的匹配部分只保持原关键词的字母组成。
发明专利"信息检索装置"(专利申请号200710151568.3,
公开日期2008年4月 30日)通过对关键词进行分词,对其中的词元进行检索后组合结果。其不足在于分词的 准确和关键词的词义完整对检索的准确性限制较大,有可能无法得到完整的匹配结果。

发明内容
本发明的目的是提出一种车辆导航系统中兴趣点信息的快速检索方法,以解决目前检 索技术中,索引文件占用系统外存、检索过程占用内存及检索速度三者难以实现共同优化 的问题,以确保得到完整准确的检索结果。
本发明提出的车辆导航系统中兴趣点信息的快速检索方法,包括以下步骤 (l一l)将车辆导航系统中所有描述原始兴趣点名称的文字拼音首字母转化为字符串
形式的检索文件,并建立一个车辆导航系统中所有原始兴趣点编号与每个兴趣点在上述字 符串形式的检索文件中的起始位置之间的第一映射表;
(l一2)按设定的格式建立一个数据文件,将车辆导航系统中所有描述原始兴趣点的 信息放到数据文件的相关位置;
(l一3)建立一个上述数据文件中各信息的编号、信息长度与该信息相对数据文件起 始位置的偏移量三者之间的第二映射表;
(l一4)根据用户输入的检索关键词,遍历上述字符串形式的检索文件,得到输入的 关键词在上述字符串中的位置,根据该位置,从上述第一映射表中检索到与该位置相对应 的待检索兴趣点编号;
(l一5)根据上述待检索兴趣点编号,从上述第二映射表中得到待检索兴趣点相对上 述数据文件起始位置的偏移量及信息长度,从而得到待检索兴趣点的所有信息。
上述方法的步骤(l一l)中,所述的将描述原始兴趣点名称的文字拼音首字母转化为 字符串形式的检索文件的方法,包括以下步骤
(2—1 )将描述原始兴趣点名称的文字拼音首字母排列成一张线性表,并按英文字母 的顺序对线性表中的各行信息重新排序,得到原始线性表;
(2 — 2)对上述原始线性表中,每相邻两行信息进行比较,每行中记录与前一行信息 相比的相同字母数,并记录不相同部分,信息格式为"相同字母数"+ "不相同部分字母", 得到一张冗余消除后的压縮线性表;
(2—3)将上述压縮线性表中的各行信息相互连接,得到字符串形式的检索文件。 上述方法的步骤(l一2)中,所述的原始兴趣点的信息包括经度、纬度、兴趣点类型、
名称、地址、电话、电话区号及邮编。
上述方法的步骤a—4)中,根据用户输入的检索关键词,遍历字符串形式的检索文
件,得到输入的关键词在字符串中的位置的方法,包括以下步骤
(4一n从上述字符串形式的检索文件中读取第一个字符,称为当前字母,同时记录
当前字母在原始线性表中的位置,称为当前字母原始信息位置,第一个字符的位置为l; ,(4—2)当上述当前字母与用户输入关键词的第一个字母相同时,则建立一个由上述
当前字母与上述当前字母原始信息位置组成的集合;
(4一3)从上述字符串形式的检索文件中读取下一个字符,若该字符为字母,则令上 述当前字母为该字母,令上述当前字母原始信息位置增加1,并进入(4一4)步;若该字
5符为数值,则令上述当前字母原始信息位置等于该数值,并重复(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)集合中 的原始信息位置加l,则删除步骤(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)集 合中的原始信息位置加l,则删除步骤(4—4)的集合;
(4一7)重复步骤(4—2) — (4—6),直至遍历上述字符串形式的检索文件。 本发明提出的车辆导航系统中兴趣点信息的快速检索方法,其优点是除了包含兴趣 点名称拼音首字母信息的检索文件,兴趣点信息在检索文件中的位置与兴趣点编号的映射 表,以及兴趣点编号与兴趣点信息在数据文件中存储位置的映射表外,本方法不需要制作 其他额外索引文件,且对检索文件进行了压縮处理,很大程度上减少了兴趣点信息占用的 系统外存空间;在检索过程中,只需要读入字符串形式的检索文件,可以有效控制系统内 存使用大小;因此本方法在占用系统外存和内存都较小的前提下,实现了对检索文件的快 速遍历,使得整个检索过程较快完成,且检索的兴趣点信息准确完整,满足实际车辆导航 的需求。


图1为本发明方法中拼音首字母表压縮方法的示意图。
图2为本发明方法中数据文件中的各兴趣点记录的格式。 图3为本发明方法实施例的检索结果示意图。
具体实施例方式
本发明提出的车辆导航系统中兴趣点信息的快速检索方法,包括以下步骤
(n将车辆导航系统中所有描述原始兴趣点名称的文字拼音首字母转化为字符串形 式的检索文件,并建立一个车辆导航系统中所有原始兴趣点编号与每个兴趣点在上述字符
串形式的检索文件中的起始位置之间的第一映射表;
(2) 按设定的格式建立一个数据文件,将车辆导航系统中所有描述原始兴趣点的信 息放到数据文件的相关位置;
(3) 建立一个上述数据文件中各信息的编号、信息长度与该信息相对数据文件起始 位置的偏移量三者之间的第二映射表;
(4) 根据用户输入的检索关键词,遍历上述字符串形式的检索文件,得到输入的关 键词在上述字符串中的位置,根据该位置,从上述第一映射表中检索到与该位置相对应的 待检索兴趣点编号;
(5)根据上述待检索兴趣点编号,从上述第二映射表中得到待检索兴趣点相对上述数据文件起始 位置的偏移量及信息长度,从而得到待检索兴趣点的所有信息。 以下结合附图,详细介绍本发明分内容-
首先加工检索文件及第一映射表。检索文件用于存储所有描述原始兴趣点名称的文字 拼音首字母信息,通过用户输入关键词与检索文件内各信息的比较,寻找符合用户输入关
键词的兴趣点,第一映射表将检索文件中兴趣点的起始位置与兴趣点编号信息相对应,使 得在检索文件中寻找到符合条件的兴趣点信息时,可以找到该兴趣点的编号。将兴趣点名 称拼音首字母信息转化为字符串形式的检索文件的加工釆用基于相邻字串的冗余消除的 压縮算法,如图1所示,方法步骤如下
(1) 将描述原始兴趣点名称的文字拼音首字母排列成一张线性表,并按英文字母的 顺序对线性表中的各行信息重新排序,得到原始线性表;
(2) 对上述原始线性表中,每相邻两行信息进行比较,每行中记录与前一行信息相 比的相同字母数,并记录不相同部分,信息格式为"相同字母数"+ "不相同部分字母", 得到一张冗余消除后的压縮线性表;
(3) 将上述压縮线性表中的各行信息相互连接,得到字符串形式的检索文件。 其次,按图2所示设定的格式建立一个数据文件,将车辆导航系统中所有描述原始
兴趣点的信息放到数据文件的相关位置,原始兴趣点的信息包括经度、纬度、兴趣点类型、 名称、地址、电话、电话区号及邮编。然后,建立一个上述数据文件中各信息的编号、信息长度与该信息相对数据文件起始 位置的偏移量三者之间的第二映射表。由于数据文件的各兴趣点信息是不等长的,因此需 要第二映射表将兴趣点编号和兴趣点在数据文件中所在位置相对应,使得通过查找检索文 件得到兴趣点编号后,可以找到该编号对应的数据文件中的兴趣点信息。
完成上述各文件的建立后,可以在此基础上进行兴趣点的检索。
首先根据用户输入的检索关键词,遍历上述字符串形式的检索文件,得到输入的关键 词在上述字符串中的位置,根据该位置,从上述第一映射表中检索到与该位置相对应的待 检索兴趣点编号。遍历检索文件的方法如下-
(1) 从上述字符串形式的检索文件中读取第一个字符,称为当前字母,同时记录当 前字母在原始线性表中的位置,称为当前字母原始信息位置,第一个字符的位置为l;
(2) 当上述当前字母与用户输入关键词的第一个字母相同时,则建立一个由上述当 前字母与上述当前字母原始信息位置组成的集合;
(3) 从上述字符串形式的检索文件中读取下一个字符,若该字符为字母,则令上述 当前字母为该字母,令上述当前字母原始信息位置增加1,并进入步骤(4);若该字符为 数值,则令上述当前字母原始信息位置等于该数值,并重复步骤(3);
(4) 当步骤(3)中最后得到的当前字母与用户输入关键词的第一个字母相同时,则
建立一个由步骤(3)中最后得到的当前字母与步骤(3)中最后得到的当前字母原始信息 位置组成的集合;
(5) 将步骤(3)中最后得到的当前字母与步骤(2)的集合比较,若步骤(3)中最 后得到的当前字母与步骤(2)集合中的字母相同,且步骤(3)中最后得到的当前字母原 始信息位置等于步骤(2)集合中的原始信息位置加1,此时,当步骤(2)集合中的当前 字母为用户输入关键词的最后一个字母时,则根据步骤(3)中最后得到的当前字母在上 述字符串形式的检索文件中的位置,通过第一映射表得到相应兴趣点编号,输出该编号, 当步骤(2)集合中的当前字母不是用户输入关键词的最后一个字母时,则改变上述步骤
(2)的集合,使集合中的当前字母为用户输入关键词的下一个字母,使集合中的当前字 母原始信息位置为步骤(3)中最后得到的当前字母原始信息位置;若步骤(3)中最后得 到的当前字母与步骤(2)集合中的字母不相同,或步骤(3)中最后得到的当前字母原始 信息位置不等于步骤(2)集合中的原始信息位置加1,则删除步骤(2)的集合;
(6) 将步骤(3)中最后得到的当前字母依次与步骤(4)的集合比较,若步骤(3) 中最后得到的当前字母与步骤(4)集合中的字母相同,且步骤(3)中最后得到的当前字 母原始信息位置等于步骤(4)集合中的原始信息位置加1,此时,当步骤(4)集合中的 当前字母为用户输入关键词的最后一个字母时,则根据步骤(3)中最后得到的当前字母 在上述字符串形式的检索文件中的位置,通过第一映射表得到相应兴趣点编号,输出该编 号,当步骤(4)集合中的当前字母不是用户输入关键词的最后一个字母时,则改变上述 步骤(4)的集合,使集合中的当前字母为用户输入关键词的下一个字母,使集合中的当前字母原始信息位置为步骤(3)中最后得到的当前字母原始信息位置;若步骤(3)中最
后得到的当前字母与步骤(4)集合中的字母不相同,或步骤(3)中最后得到的当前字母
原始信息位置不等于步骤(4)集合中的原始信息位置加1,则删除步骤(4)的集合;
(7)重复步骤(2) — (6),直至遍历上述字符串形式的检索文件。 在获得待检索兴趣点编号后,査找第二映射表可以得到待检索兴趣点相对上述数据文
4牛起始位置的偏移量及信息长度,依此从数据文件中得到待检索兴趣点的所有信息。
本发明的一个实施例中,采用上述方法在一台嵌入式微机中,实现大量兴趣点的快速
检索方法,采用Visual 0++编程实现,并集成于实际车辆导航系统中。该系统向车辆用
户提供检索兴趣点的界面,当用户输入作为关键词的字母串时,显示拼音首字母包括该字 母串的所有兴趣点名称。
该系统在北京市的实际检索情况如图3所示。该系统内北京市所有兴趣点数量约为 14万,其检索文件大小约为600K,第一映射表大小约为600K,第二映射表大小约为850K, 数据文件大小约为6M;当用户没有输入时,显示北京市的所有兴趣点点名称;当用户输 入关键词"abb"时,显示了三个满足关键词的兴趣点名称,检索速度在0.2秒以内,结 果准确。
9
权利要求
1、一种车辆导航系统中兴趣点信息的快速检索方法,其特征在于该检索方法包括以下步骤(1-1)将车辆导航系统中所有描述原始兴趣点名称的文字拼音首字母转化为字符串形式的检索文件,并建立一个车辆导航系统中所有原始兴趣点编号与每个兴趣点在上述字符串形式的检索文件中的起始位置之间的第一映射表;(1-2)按设定的格式建立一个数据文件,将车辆导航系统中所有描述原始兴趣点的信息放到数据文件的相关位置;(1-3)建立一个上述数据文件中各信息的编号、信息长度与该信息相对数据文件起始位置的偏移量三者之间的第二映射表;(1-4)根据用户输入的检索关键词,遍历上述字符串形式的检索文件,得到输入的关键词在上述字符串中的位置,根据该位置,从上述第一映射表中检索到与该位置相对应的待检索兴趣点编号;(1-5)根据上述待检索兴趣点编号,从上述第二映射表中得到待检索兴趣点相对上述数据文件起始位置的偏移量及信息长度,从而得到待检索兴趣点的所有信息。
2、 如权利要求1所述的检索方法,其特征在于所述的步骤(l一l)中,将描述原始 兴趣点名称的文字拼音首字母转化为字符串形式的检索文件的方法,包括以下步骤-(2—1 )将描述原始兴趣点名称的文字拼音首字母排列成一张线性表,并按英文字母 的顺序对线性表中的各行信息重新排序,得到原始线性表;(2 — 2)对上述原始线性表中,每相邻两行信息进行比较,每行中记录与前一行信息 相比的相同字母数,并记录不相同部分,信息格式为"相同字母数"+ "不相同部分字母", 得到 一张冗余消除后的压縮线性表;(2—3)将上述压縮线性表中的各行信息相互连接,得到字符串形式的检索文件。
3、 如权利要求1所述的检索方法,其特征在于所述的步骤(l一2)中,原始兴趣点 的信息包括经度、纬度、兴趣点类型、名称、地址、电话《电话区号及邮编。
4、 如权利要求1所述的检索方法,其特征在于所述的步骤(l一4)中,根据用户输 入的检索关键词,遍历字符串形式的检索文件,得到输入的关键词在字符串中的位置的方法,包括以下步骤(4一1)从上述字符串形式的检索文件中读取第一个字符,称为当前字母,同时记录 当前字母在原始线性表中的位置,称为当前字母原始信息位置,第一个字符的位置为l; (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)集合中 的原始信息位置加l,则删除步骤(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)集 合中的原始信息位置加l,则删除步骤(4一4)的集合;(4一7)重复步骤(4一2) — (4—6),直至遍历上述字符串形式的检索文件。
全文摘要
本发明涉及一种车辆导航系统中兴趣点信息的快速检索方法,属于汽车电子技术领域。首先将原始兴趣点名称的文字拼音首字母转化为字符串形式的检索文件,并建立原始兴趣点编号与每个兴趣点在检索文件中的起始位置的第一映射表;建立数据文件,将原始兴趣点的信息放到其相关位置;建立数据文件各信息的编号、信息长度与该信息相对数据文件起始位置的偏移量的第二映射表;根据检索关键词,遍历检索文件,得到关键词在字符串中的位置,根据该位置从第一映射表中检索到编号;根据编号,从第二映射表中得到兴趣点的所有信息。本方法实现了对检索文件的快速便利,使得整个检索过程较快完成,且检索的兴趣点信息准确完整,满足实际车辆导航的需求。
文档编号G01C21/34GK101493340SQ20091007930
公开日2009年7月29日 申请日期2009年3月6日 优先权日2009年3月6日
发明者涛 张, 挺 李, 扬 杨, 杨殿阁, 连小珉 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1