POI信息更新、检索、POI数据包生成方法及装置与流程

文档序号:13215911阅读:353来源:国知局
技术领域本发明涉及地理信息技术领域,尤其涉及POI信息更新、检索、POI数据包生成方法及装置。

背景技术:
POI(PointofInternet,兴趣点)为导航电子地图的重要组成部分,POI数据的属性包括POI的名称、类别、经度、纬度、联系方式、房屋构造等信息。为便于POI数据的检索,现有技术以POI名称的分词的拼音为索引,保存POI数据,例如,POI数据的名称为“方恒国际”,该POI数据保存在以“fang”为一级索引的POI数据簇中。后续,当用户输入检索词进行POI检索时,终端通过POI索引确定与输入的检索词对应的POI数据,并将该POI数据展现在电子地图上呈现给用户。随着导航电子地图的广泛应用,POI信息的更新方法得到越来越多的关注。由于现有技术POI数据与索引是作为一个整体保存的,因此,客户端对本地保存的POI数据进行更新时必须从服务器端下载完整的新版本的POI信息,对本地保存的POI信息进行更新。由于现有技术客户端需要下载完整的新版本的POI信息对本地保存的POI信息进行更新,而完整的新版本的POI信息数据量很大,通过网络进行传输会占用较大的网络带宽。因此,现有技术中POI信息更新存在传输的POI信息占用过大带宽的问题。

技术实现要素:
本发明实施例提供POI信息更新、检索、POI数据包生成方法及装置,用以解决现有技术中存在传输的POI信息占用过大带宽的问题。本发明实施例提供的具体技术方案如下:一种POI信息更新方法,包括:向服务器发送携带本地保存的POI数据版本号及请求的POI数据版本号的POI更新数据包请求消息;接收所述服务器基于所述POI更新数据包请求消息生成的增量更新POI数据包;基于所述增量更新POI数据包中包含的新版POI数据更新本地保存的子网格的POI数据;基于所述增量更新POI数据包中包含的新版POI索引更新本地保存的子网格的POI索引,所述POI索引至少包括POI标识、POI数据所在子网格的标识和POI数据在所在子网格的长度偏移量。一种增量更新POI数据包的生成方法,包括:接收携带终端本地保存的POI数据版本号及请求的POI数据版本号的POI更新数据包请求消息;比较所述两个POI数据版本号,若所述两个POI数据版本号是相邻的版本号,则获取请求的POI数据版本号对应的有更新的子网格的POI数据和POI索引,并将有更新的子网格的POI数据和POI索引打包为一个增量更新POI数据包发送至终端;若所述两个版本号是非相邻的版本号,则根据本地保存的POI数据版本号、请求的POI数据版本号及所述本地保存的POI数据版本号与请求的POI数据版本号之间所有版本号对应的POI数据和POI索引生成一个增量更新POI数据包。一种POI信息检索方法,包括:接收用户输入的检索词;并按照预设规则对所述检索词进行划分,生成至少一个词组;针对第一个词组,从本地保存的POI索引中的POI标识中,筛选与所述第一个词组匹配的POI标识;针对除所述第一词组之外的每一个词组,均从该词组的前一个词组筛选得到的POI标识中进行筛选,并将对最后一个词组筛选得到的POI标识作为所述检索词对应的POI标识;从本地保存的POI索引中,获取所述POI标识对应的子网格的标识和子网格的长度偏移量;根据获取的所述子网格的标识和获取的所述子网格的长度偏移量,获取POI数据在所述子网格中的位置;根据获取的所述POI数据在所述子网格中的位置,从本地保存的POI数据中获取所述检索词对应的POI数据。一种POI信息更新装置,包括:发送单元,用于向服务器发送携带本地保存的POI数据版本号及请求的POI数据版本号的POI更新数据包请求消息;接收单元,用于接收所述服务器基于所述POI更新数据包请求消息生成的增量更新POI数据包;POI数据更新单元,用于基于所述增量更新POI数据包中包含的新版POI数据更新本地保存的子网格的POI数据;POI索引更新单元,用于基于所述增量更新POI数据包中包含的新版POI索引更新本地保存的子网格的POI索引,所述POI索引至少包括POI标识、POI数据所在子网格的标识和POI数据在所在子网格的长度偏移量。一种增量更新POI数据包的生成装置,包括:接收单元,用于接收携带终端本地保存的POI数据版本号及请求的POI数据版本号的POI更新数据包请求消息;第一增量更新POI数据包生成单元,用于比较所述两个POI数据版本号,若所述两个POI数据版本号是相邻的版本号,则获取请求的POI数据版本号对应的有更新的子网格的POI数据和POI索引,并将有更新的子网格的POI数据和POI索引打包为一个增量更新POI数据包发送至终端;第二增量更新POI数据包生成单元,用于若所述两个版本号是非相邻的版本号,则根据本地保存的POI数据版本号、请求的POI数据版本号及所述本地保存的POI数据版本号与请求的POI数据版本号之间所有版本号对应的POI数据和POI索引生成一个增量更新POI数据包。一种POI信息检索装置,包括:接收单元,用于接收用户输入的检索词;并词组生成单元,用于按照预设规则对所述检索词进行划分,生成至少一个词组;POI标识筛选单元,用于针对第一个词组,从本地保存的POI索引中的POI标识中,筛选与所述第一个词组匹配的POI标识;针对除所述第一词组之外的每一个词组,均从该词组的前一个词组筛选得到的POI标识中筛选与该词组匹配的POI标识,并将对最后一个词组筛选得到的POI标识作为所述检索词对应的POI标识;子网格的标识和长度偏移量获取单元,用于从本地保存的POI索引中,获取所述POI标识对应的子网格的标识和子网格的长度偏移量;POI数据位置获取单元,用于根据获取的所述子网格的标识和获取的所述子网格的长度偏移量,获取POI数据在所述子网格中的位置;POI数据获取单元,用于根据获取的所述POI数据在所述子网格中的位置,从本地保存的POI数据中获取所述检索词对应的POI数据。本发明实施例中,一方面,终端向服务器发送POI更新数据包请求消息;服务器根据该POI更新数据包请求消息中携带的终端中保存的POI数据版本号和所请求的POI数据版本号,生成增量更新POI数据包;基于服务器发送的增量更新POI数据包中包含的新版POI数据以及新版POI数据对应的新版POI索引,更新终端本地保存的旧版POI数据以及旧版POI索引。采用上述技术方案,将POI数据和POI索引分开进行保存,终端基于服务器发送的增量更新POI数据包,仅更新发生变化的POI信息,降低了终端在本地进行POI信息更新的复杂度;并且,由于增量更新POI数据包中仅包含发生更新的POI信息,该发生更新的POI信息的数据量远远小于完整版本的POI信息的数据量,因此,仅传输增量更新POI数据包能够有效减少传输POI信息所占用的带宽。另一方面,终端基于服务器发送的增量更新POI数据包更新本地保存的POI信息,当检测到用户输入的检索词时,即获取该检索词对应的POI数据;采用本发明技术方案,由于POI数据和POI索引均保存在终端本地,因此,在终端没有网络连接的情况下,当用户输入检索词时,终端即可快速查找该检索词对应的POI索引,并基于该POI索引获取到相应的POI数据呈现给用户,从而提高了导航电子地图的可操作性,并提高了用户体验。附图说明图1为本发明实施例中POI信息更新流程图;图2为本发明实施例中POI网格架构示意图;图3为本发明实施例中增量更新POI数据包生成流程图;图4为本发明实施例中POI信息存储示意图;图5为本发明实施例中增量更新POI数据包示意图;图6为本发明实施例中POI信息检索流程图;图7a为本发明实施例中导航电子地图检索结果页面一;图7b为本发明实施例中导航电子地图检索结果页面二;图8为本发明实施例中POI信息更新装置结构示意图;图9为本发明实施例中增量更新POI数据包生成装置结构示意图;图10为本发明实施例中POI信息检索装置结构示意图。具体实施方式为了解决现有技术中存在POI信息更新不完整问题。本发明实施例中,将POI数据和POI索引分开进行保存,终端基于服务器发送的增量更新POI数据包,仅更新有更新的POI信息,降低了终端在本地进行POI信息更新的复杂度;并且,由于增量更新POI数据包中仅包含发生更新的POI信息,该发生更新的POI信息的数据量远远小于完整版本的POI信息的数据量,因此,仅传输增量更新POI数据包能够有效减少传输POI信息所占用的带宽。另一方面,由于POI数据和POI索引均保存在终端本地,因此,在终端没有网络连接的情况下,当用户输入检索词时,终端即可快速查找该检索词对应的POI索引,并基于该POI索引获取到相应的POI数据呈现给用户,从而提高了导航电子地图的可操作性,并提高了用户体验。下面结合附图对本发明优选的实施装置进行详细说明。参阅图1所示,本发明实施例中,终端更新POI信息的过程为:步骤100:终端向服务器发送携带本地保存的POI数据版本号及请求的POI数据版本号的POI更新数据包请求消息。本发明实施例中,终端按照预设周期向服务器发送POI数据版本号获取请求消息,服务器基于该POI数据版本号获取请求消息向终端发送POI数据版本号;或者,当用户通过终端登录导航电子地图客户端时,终端向服务器发送POI数据版本号获取请求消息,服务器基于该POI数据版本号获取请求消息,向终端发送该服务器本地保存的POI数据版本号;或者,当服务器检测到用户通过终端登录导航电子地图客户端时,即向终端发送服务器本地保存的POI数据版本号。其中,服务器本地保存的POI数据版本号即为服务器本地保存的所有POI数据版本号中的最高POI数据版本号。进一步的,终端比较本地保存的POI数据版本号与服务器发送的POI数据版本号,当判定终端本地保存的POI数据版本号低于服务器发送的POI数据版本号时,向服务器发送POI更新数据包请求消息,该POI更新数据包请求消息中包含终端保存的POI数据版本号以及终端请求的POI数据版本号;其中,终端请求的POI数据版本号低于或者等于服务器发送的POI数据版本号。可选的,终端向服务器发送的POI更新数据包请求消息中,还可以仅包含终端保存的POI数据版本号,此时,服务器将默认终端请求最新版本的POI数据。步骤110:终端接收服务器基于POI更新数据包请求消息生成的增量更新POI数据包。本发明实施例中,当服务器接收到终端发送的POI更新数据包请求消息时,获取该POI更新数据包请求消息中携带的终端本地保存的POI数据版本号;服务器比较终端本地保存的POI数据版本号和终端请求的POI数据版本号,并从服务器本地保存的POI更新记录中确定在上述两个版本之间POI数据有更新的子网格的标识,并获取该确定的子网格的标识对应的所有POI数据和POI索引,将获取的子网格的标识对应的所有POI数据作为新版POI数据,将所有新版POI数据分别对应的POI索引作为新版POI索引;服务器根据确定的子网格的标识以及其对应的新版POI数据以及新版POI索引,生成增量更新POI数据包。具体的,若终端本地保存的POI数据版本号和终端请求的POI数据版本号为相邻的版本号,则服务器获取终端请求的POI数据版本号对应的有更新的子网格的POI数据和POI索引,并根据有更新的子网格的POI数据和POI索引,生成增量更新POI数据包发送至终端;若终端本地保存的POI数据版本号和终端请求的POI数据版本号为非相邻的版本号,则服务器根据终端本地保存的POI数据版本号与终端请求的POI数据版本号之间所有版本号对应的POI数据和POI索引,生成增量更新POI数据包发送至终端。采用上述技术方案,服务器比较终端请求的POI数据版本号对应的子网格的标识相较于终端本地存储的POI数据版本号对应的子网格的标识,仅将POI数据有更新的子网格的标识对应的所有POI数据和POI索引添加至增量更新POI数据包中,使终端无须更新本地保存的所有POI信息,有效降低了终端进行POI信息更新的复杂度,提高了POI更新效率;并且,在服务器中,POI数据的存储以子网格为单位,且POI数据与POI信息分开存储,仅根据终端请求的POI数据版本号相较于终端本地保存的POI数据版本号中,POI数据有更新的子网格中包含的所有POI数据及其对应的POI索引生成增量更新POI数据包,减小了增量更新POI数据包传输时占用的带宽。步骤120:基于上述增量更新POI数据包中包含的新版POI数据更新本地保存的子网格的POI数据,以及基于增量更新POI数据包中包含的新版POI索引更新本地保存的子网格的POI索引,所述POI索引至少包括POI标识、POI数据所在子网格的标识和POI数据在所在子网格的长度偏移量。本发明实施例中,终端解析服务器发送的增量更新POI数据包,获取该增量更新POI数据包中携带的新版POI数据和新版POI索引;终端根据上述新版POI数据以及新版POI数据对应的子网格的标识,更新本地保存的与该子网格的标识对应的POI数据和POI索引。可选的,在服务器保存的POI数据中,为每一个子网格中所包含的POI数据所占用的存储空间大小设置预设存储空间门限值(如64KB)。在上述POI信息更新过程中,针对任意一子网格,可能涉及到将新增的POI数据添加到任意一子网格所包含的POI数据中,当任意一子网格中所包含的POI数据所占用的存储空间大小大于预设存储空间门限值时,需要将上述任意一子网格进一步划分。例如,存在子网格A和子网格B,该子网格A和子网格B为终端进行POI数据更新前的两个子网格,其中,对子网格A进行POI数据更新后,一个子网格A中所包含的POI数据所占用的存储空间大小大于预设存储空间门限值,子网格B中所包含的POI数据所占用的存储空间大小小于预设存储空间门限值,此时,需要将上述子网格A进一步划分,当该子网格A划分后的子网格Ai包含的所有POI数据所占用的存储空间大小均小于或等于上述预设存储空间门限值时,将生成的该子网格Ai添加至本地保存的POI网格架构图(参阅图2所示)中,且将子网格A作为子网格Ai的父网格。较佳的,对子网格A划分时采用均等划分,即划分后的各个子网格Ai所对应的地理覆盖范围相等。由于在导航电子地图中,当一个子网格所包含的所有POI数据所占用的存储空间大小大于等于预设存储空间门限值时,即需要对上述子网格进行划分,因此,服务器发送的增量更新POI数据包中携带的子网格的标识可以为终端本地保存的所有子网格的标识中包含的子网格的标识(如上述举例中子网格B的标识),也可以为在终端本地保存的POI数据版本号之后进行POI信息版本更新过程中,对终端保存的任意一子网格划分生成的子网格的标识(如上述举例中子网格Ai的标识)。基于上述两种情况,可选的,终端根据上述增量更新POI数据包中包含的新版POI数据和新版POI索引,更新本地保存的与子网格的标识对应的POI数据和POI索引。具体的,针对增量更新POI数据包中携带的每一个子网格的标识,均执行如下操作:终端判断本地是否保存有增量更新POI数据包中携带的子网格的标识C;当终端判定本地保存有子网格的标识C时,用子网格的标识C对应的新版POI数据以及新版POI索引替换本地保存的子网格的标识C对应的旧版POI数据以及旧版POI索引;当终端判定本地未保存上述子网格的标识时,获取增量更新POI数据包中携带的子网格的标识C对应的父网格标识C′,并在终端本地查找父网格标识C′对应的POI索引和文件夹,将上述新版POI数据保存至父网格标识C′对应的文件夹中,以及在该父网格标识C′对应的POI索引中添加上述新版POI索引。进一步的,当POI数据及其对应的POI索引更新完毕之后,终端更新本地保存的POI数据版本号,从而使得终端与服务器保存的POI信息保持同步。采用上述技术方案,终端根据服务器发送的增量更新POI数据包,仅更新本地保存的所有POI数据中POI数据有更新的子网格的标识对应的所有POI信息,无须更新终端本地保存的所有POI信息,从而节约了终端更新POI信息的时间,提高了POI信息更新效率,降低了终端的负担;并且,终端根据增量更新POI数据包更新本地的POI信息之后,终端在与服务器断开连接的情况下仍能获取用户输入的检索词对应的检索结果,从而提高了导航电子地图的可操作性。参阅图3所示,本发明实施例中,服务器生成增量更新POI数据包指示终端更新POI信息的过程为:步骤300:服务器接收携带终端本地保存的POI数据版本号及请求的POI数据版本号的POI更新数据包请求消息。本发明实施例中,由POI信息采集终端对POI信息进行采集,并由POI信息采集终端根据采集到的POI信息生成POI数据包发送至服务器,其中,该POI数据包中包含了该POI信息采集终端对应的地理覆盖范围内的POI信息;服务器根据上述POI数据包中包含的POI信息更新本地保存的POI信息。其中,在服务器中,POI数据以子网格为单位进行保存,每一个子网格中所保存的POI数据所占用的存储空间的大小为固定值。参阅图4所示,为本发明实施例中POI信息格式,POI信息包括POI数据和POI索引,POI数据中包含POI数据的格式,包括文件头和网格数据,文件头中保存有基本网格的索引,每一个网格数据中又包含POI坐标,POI类型,POI地理名称以及其他信息,此外,上述POI数据中还包括POI唯一编码,该POI唯一编码包括POI数据所在子网格的标识,POI数据在子网格中的长度偏移量,该POI唯一编码根据POI数据生成;POI索引即为对POI数据的索引,包括城市名称或者城市对应的网格标识,以及每一个城市或者该城市对应的网格所包含的各个子网格的POI唯一编码。具体的,服务器将POI信息采集终端发送的POI数据包中包含的POI数据,与本地保存的POI数据进行对比,以获取有更新的POI数据,并在服务器本地保存该有更新的POI数据;并且,服务器中保存有POI数据版本号,当服务器中保存的POI信息更新一次,即将POI数据版本号加一;并记录有更新的POI信息,以及POI信息有更新的子网格的标识;当任意一子网格对应的POI信息有更新时,服务器记录该有更新的POI信息所包含的POI数据在子网格中的长度偏移量;服务器根据记录的POI数据版本号,有更新的POI信息所对应的子网格的标识,以及有更新的POI数据在子网格中的长度偏移量,生成POI更新记录保存在服务器中。例如,可以采用表1所示形式保存POI更新记录。可选的,上述一个子网格的标识对应的更新后的POI数据可以保存在同一个文件夹中。表1POI数据版本号所在文件更新的子网格1文件1子网格12文件2子网格1、子网格2………………本发明实施例中,服务器中保存的最初始版本的POI信息中包含所有子网格对应的POI信息;而在最初始版本之后的每一个版本中仅保存该版本相较于前一个版本有更新的子网格的标识及其对应的POI信息。可选的,在导航电子地图中包含大量基本网格,按照预设规则对基本网格进行划分后,生成一个层级或者多个层级的子网格,上述基本网格以及该基本网格包含的一个或者多个层级的子网格组成POI网格架构图,参阅图2所示,POI网格架构图中保存有导航电子地图中所有网格关系,该POI网格架构图包含多个层级的节点,根节点对应于基本网格,子网格的上游节点即为该子网格的父网格。可选的,在POI网格架构图中,每一个网格对应于导航电子地图中的相应地区,子网格对应的地区与该子网格的父网格对应的地区之间为地区从属关系,即子网格对应的地区属于该子网格的父网格对应的地区,例如,子网格对应的地区为成都,则该子网格的父网格对应的地区可以为四川。可选的,在导航电子地图中,每一个子网格均包含多条POI数据,当该子网格中的任意一条POI数据有更新时,以子网格为单位记录更新后的POI数据,即服务器获取发生更新的POI数据所对应的子网格的标识,并记录获取的子网格的标识对应的所有POI信息,其中,获取的子网格的标识对应的所有POI信息包含,该获取的子网格的标识对应的所有POI信息中更新后的POI信息,以及该获取的子网格的标识对应的所有POI信息中未发生更新的POI信息。本发明实施例中,当服务器接收到终端发送的POI更新数据包请求消息时,获取该POI更新数据包请求消息中携带的终端本地保存的POI数据版本号和终端请求的POI数据版本号。步骤310:服务器比较上述两个POI数据版本号,若该两个POI数据版本号是相邻的版本号,则获取请求的POI数据版本号对应的有更新的子网格的POI数据和POI索引,并将有更新的子网格的POI数据和POI索引打包为一个增量更新POI数据包发送至终端;若上述两个版本号是非相邻的版本号,则根据终端本地保存的POI数据版本号与终端请求的POI数据版本号之间所有版本号对应的POI数据和POI索引生成一个增量更新POI数据包发送至终端。本发明实施例中,服务器从本地保存的POI信息更新记录中确定终端请求的POI数据版本号对应的所有子网格中相较于终端发送的POI数据版本号对应的子网格中,有更新的子网格的标识,并获取该确定的子网格的标识对应的所有POI信息,将确定的子网格的标识对应的所有POI数据作为新版POI数据,将所有新版POI数据分别对应的POI索引作为新版POI索引;服务器根据确定的子网格的标识以及获取的新版POI数据以及新版POI索引,生成增量更新POI数据包。可选的,在服务器保存的POI数据中,为每一个子网格中所包含的POI数据所占用的存储空间大小设置预设存储空间门限值(如64KB)。在上述POI信息更新过程中,针对任意一子网格,可能涉及到将新增的POI数据添加到任意一子网格所包含的POI数据中,当任意一子网格中所包含的POI数据所占用的存储空间大小大于预设存储空间门限值时,需要将上述任意一子网格进一步划分。例如,存在子网格A和子网格B,该子网格A和子网格B为终端进行POI数据更新前的两个子网格,其中,对子网格A进行POI数据更新后,一个子网格A中所包含的POI数据所占用的存储空间大小大于预设存储空间门限值,子网格B中所包含的POI数据所占用的存储空间大小小于预设存储空间门限值,此时,需要将上述子网格A进一步划分,当该子网格A划分后的子网格Ai包含的所有POI数据所占用的存储空间大小均小于或等于上述预设存储空间门限值时,将生成的该子网格Ai添加至本地保存的POI网格架构图(参阅图2所示)中,且将子网格A作为子网格Ai的父网格。较佳的,对子网格A划分时采用均等划分,即划分后的各个子网格Ai所对应的地理覆盖范围相等。具体的,若终端本地保存的POI数据版本号和终端请求的POI数据版本号为相邻的版本号,则服务器获取终端请求的POI数据版本号对应的有更新的子网格的POI数据和POI索引,并将有更新的子网格的POI数据和POI索引打包为一个增量更新POI数据包发送至终端;由于服务器中仅有最初始POI数据版本保存有所有子网格的标识对应的POI信息,最初始POI数据版本之后的每一个版本中仅保存有有更新的子网格的标识及其对应的POI信息,因此,若终端本地保存的POI数据版本号和终端请求的POI数据版本号为非相邻的版本号,则服务器需要根据终端本地保存的POI数据版本号与终端请求的POI数据版本号之间所有版本号对应的POI数据和POI索引生成一个增量更新POI数据包发送至终端。可选的,服务器生成增量更新POI数据包的过程,可以包含以下几种情况:第一种情况:服务器比较终端本地保存的POI数据版本号对应的所有子网格的标识以及终端请求的POI数据版本号对应的所有子网格的标识,若终端请求的POI数据版本号对应的所有子网格的标识中存在任意一子网格的标识D1,在终端本地保存的POI数据版本号对应的所有子网格的标识中包含上述任意一子网格的标识D1,则将该任意一子网格的标识D1对应的新版POI数据和新版POI索引添加至增量更新POI数据包中;例如,针对终端请求的POI数据版本号为版本4,终端本地保存的POI数据版本号为版本3,当版本3和版本4中均包含上述子网格的标识D1时,将版本4中的子网格的标识D1对应的所有POI数据作为新版POI数据,以及将子网格的标识D2对应的所有POI索引作为新版POI索引,并将上述新版POI数据和新版POI索引添加至增量更新POI数据包中。第二种情况:服务器比较终端本地保存的POI数据版本号对应的所有子网格的标识以及终端请求的POI数据版本号对应的所有子网格的标识,若终端请求的POI数据版本号对应的所有子网格的标识中存在任意一子网格的标识D2,当终端本地保存的POI数据版本号对应的所有子网格的标识中不包含该任意一子网格的标识D2时,将该任意一子网的标识D2对应的新版POI信息和新版POI索引添加至增量更新POI数据包中;例如,针对服务器发送的POI数据版本号为版本4,终端POI数据版本号为版本3,当版本3中不包含上述子网格的标识D2,而版本4中包含上述子网格的标识D2时,将版本4中的子网格的标识D2对应的所有POI数据作为新版POI数据,以及将子网格的标识D2对应的所有POI索引作为新版POI索引,并将上述新版POI数据和新版POI索引添加至增量更新POI数据包中。第三种情况:服务器比较终端本地保存的POI数据版本号对应的所有子网格的标识以及终端请求的最新POI数据版本号对应的所有子网格的标识,若服务器判定终端本地保存的POI数据版本号对应的所有子网格的标识中存在任意一子网格的标识D3,终端请求的POI数据版本号对应的所有子网格的标识中不存在该任意一子网格的标识D3,则服务器根据服务器本地保存的POI网格架构图,判定该任意一子网格的标识D3对应的子网格为终端请求的POI数据版本号对应的所有子网格中任一子网格D3′的父网格时,将该任一子网格的标识D3′对应的新版POI信息和新版POI索引添加至增量更新POI数据包中;例如,针对终端请求的POI数据版本号为版本4,终端本地保存的POI数据版本号为版本3,当版本3中包含子网格的标识D3,而版本4中不包含上述子网格的标识D3时,若服务器判定版本4对应的所有子网格的标识中存在子网格的标识D3′,且该子网格的标识D3′为子网格的标识D3的父网格标识,则将版本3中的子网格的标识D3′对应的所有POI数据作为新版POI数据,以及将子网格的标识D3′对应的所有POI索引作为新版POI索引,并将上述新版POI数据和新版POI索引添加至增量更新POI数据包中。第四种情况:服务器比较终端本地保存的POI数据版本号对应的所有子网格的标识以及终端请求的POI数据版本号对应的所有子网格的标识,若服务器判定终端本地保存的POI数据版本号对应的所有子网格的标识中存在任意一子网格的标识D4,终端请求的POI数据版本号对应的所有子网格的标识中不存在该任意一子网格的标识D4,且服务器根据服务器本地保存的POI网格架构图,判定该任意一子网格的标识D4对应的子网格不为终端请求的POI数据版本号对应的所有子网格中任一子网格D3′的父网格,则根据服务器本地保存的POI网格架构图,表明在终端保存的POI数据版本号之后至终端请求的POI数据版本号,上述任意一子网格的标识D4对应的POI信息,均为发生更新,此时服务器不将上述任意一子网格的标识D4对应的POI信息添加至增量更新POI数据包中。基于上述四种情况,服务器生成增量更新POI数据包发送至终端,令终端根据上述增量更新POI数据包更新本地POI数据以及POI索引。可选的,以子网格为三级网格为例,增量更新POI数据包的形式参阅图5所示,增量更新POI数据包中包含新版POI数据和新版POI索引,新版POI索引包括不同级别网格的数目,其中,网格包括一级网格(如代表省级网格),二级网格(如市级网格),三级网格(如县级网格);该新版POI数据还包括一级网格数据偏移量,二级网格数据偏移量,三级网格标识以及数据偏移量;其中,一级网格数据偏移量表示一级网格对应的文件夹的位置,二级网格数据偏移量表示二级网格对应的POI数据在一级网格对应的文件夹中的位置,三级网格数据偏移量表示三级网格对应的POI数据在二级网格中的位置。新版POI索引表示按照二级网格中所有三级网格的顺序,存储每一个三级网格所包含的POI数据组成的数据包。参阅图6所示,本发明实施例中,终端根据用户指示进行POI信息检索的过程为:步骤600:终端接收到用户输入的检索词时,按照预设规则对该检索词进行划分,生成至少一个词组。本发明实施例中,终端接收到用户输入的检索词时,即按照预设规则对检索词进行划分,生成该检索词对应的至少一个词组。其中,按照预设规则对检索词进行划分可以为按照词语构成情况进行划分,如对“红领巾小学”进行划分后,生成词组“红领巾”和“小学”;按照预设规则对检索词进行划分还可以为按照预设字数进行划分,如对“方恒大厦”进行划分后,生成词组“方恒”和“大厦”。步骤610:针对第一个词组,终端从本地保存的POI索引中的POI标识中,筛选与第一个词组匹配的POI标识。本发明实施例中,终端针对第一个词组,从本地保存的所有POI标识中,筛选与第一词组匹配的POI标识。具体的,上述POI标识可以为首字母,或者声母和韵母组成的信息;终端可以根据词组的首字母查找相匹配的POI标识,终端也可以根据词组的声母和韵母的组合,查找相匹配的POI标识。例如,用户输入的搜索词为“方恒大厦”,则进行分词处理后,第一个词组为“方恒”,则所有POI标识中,与该第一个词组相匹配的POI标识为满足“fangheng”或者“FH”的POI标识。步骤620:针对除上述第一词组之外的每一个词组,终端均从该词组的前一个词组筛选得到的POI标识中筛选该词组匹配的POI标识,并将对最后一个词组筛选得到的POI标识作为检索词对应的POI标识。本发明实施例中,终端按照检索词中各个词组的顺序,依次对POI标识进行筛选,每一次筛选操作均是在前一次筛选得到的POI标识中进行的。例如,用户输入的搜索词为“方恒国际大厦”,则进行分词处理后,第一个词组为“方恒”,则所有POI标识中,与该第一个词组相匹配的POI标识为满足“fangheng”的POI标识,终端将上述满足“fangheng”的POI标识保存为第一个词组对应的POI集合;第二个词组为“国际”,终端从上述第一个词组对应的POI集合中获取与“国际”相匹配的POI标识,即终端从上述第一个词组对应的POI集合中查找满足“guoji”的POI标识,并根据查找结果生成第二个词组对应的POI集合;第三个词组为“大厦”,终端从上述第二个词组对应的POI集合中获取与“大厦”相匹配的POI标识,即终端从上述第二个词组对应的POI集合中查找满足“dasha”的POI标识,并将查找结果作为检索词“方恒国际大厦”对应的POI标识。步骤630:终端从本地保存的POI索引中,获取上述POI标识对应的子网格的标识和子网格的长度偏移量。本发明实施例中,终端本地保存的POI索引中包含POI标识以及POI标识对应的子网格的标识和子网格的长度偏移量。步骤640:终端根据获取的子网格的标识和获取的子网格的长度偏移量,获取POI数据在子网格中的位置。本发明实施例中,由子网格的标识,可以获取存储该子网格的标识对应的POI数据的文件夹;根据子网格的长度偏移量能够获取POI数据在上述文件夹中的具体位置,由该具体位置,能够确定POI数据在子网格中的位置。步骤650:终端根据获取的上述POI数据在子网格中的位置,从本地保存的POI数据中获取上述检索词对应的POI数据。本发明实施例中,检索词对应的POI标识数目可以为一个,也可以为多个;当检索词对应的POI标识数目为一个时,终端直接将获取的POI数据以导航电子地图形式呈现即可;当检索词对应的POI标识数目为多个时,终端分别获取每一个POI标识对应POI数据中包含的POI地理名称,并呈现获取的POI地理名称组成的POI地理名称列表;获取用户从该POI地理名称列表中选定的POI地理名称;根据选定的POI地理名称,从本地保存的POI数据中获取检索词对应的POI数据。例如,参阅图7a所示,当终端登录导航电子地图客户端后,在导航电子地图对应的搜索栏中输入检索词“xzcs”,即表示在导航电子地图中检索“北京市”中所有包含“xzcs”的地区;终端根据该检索词运行上述导航电子地图应用程序,生成如图7a所示的检索结果界面,在检索结果界面中呈现“西庄超市\\大兴区”、“紫竹超市\\房山区”、“雪珍超市\\通州区”和“心斋茶社\\东城区”,上述四个搜索结果对应的首字母均为“xzcs”,符合输入的分检索词;进一步的,当终端从服务器获取增量更新POI数据包后,更新终端本地导航电子地图应用程序中包含的POI信息,当上述导航电子地图应用程序中包含的POI信息更新完毕后,重新在导航电子地图对应的搜索栏中输入检索词“xzcs”,生成如图7b所示的检索结果界面,在检索结果界面中呈现“新增测试\\大兴区”、“新增测试\\房山区”、“新增测试\\通州区”,上述三个检索结果对应的首字母均为“xzcs”,符合输入的检索词。对比图7a和图7b可知,由于导航电子地图应用程序中包含的关于xzcs的POI信息发生更新,因此,终端呈现的搜索结果不同。本发明实施例中,POI索引中的POI数据所在子网格的标识以及POI数据在子网格中的长度偏移量所占用的存储空间为5个字节,占用存储空间小,便于快速实现POI数据的检索。基于上述技术方案,参阅图8所示,本发明实施例提供一种POI信息更新装置,包括发送单元80,接收单元81,POI数据更新单元82,以及POI索引更新单元83,其中:发送单元80,用于向服务器发送携带本地保存的POI数据版本号及请求的POI数据版本号的POI更新数据包请求消息;接收单元81,用于接收所述服务器基于所述POI更新数据包请求消息生成的增量更新POI数据包;POI数据更新单元82,用于基于所述增量更新POI数据包中包含的新版POI数据更新本地保存的子网格的POI数据;POI索引更新单元83,用于基于所述增量更新POI数据包中包含的新版POI索引更新本地保存的子网格的POI索引,所述POI索引至少包括POI标识、POI数据所在子网格的标识和POI数据在所在子网格的长度偏移量。参阅图9所示,本发明实施例提供一种增量更新POI数据包的生成装置,包括接收单元90,增量更新POI数据包生成单元91,其中:接收单元90,用于接收携带终端本地保存的POI数据版本号及请求的POI数据版本号的POI更新数据包请求消息;增量更新POI数据包生成单元91,用于比较所述两个POI数据版本号,若所述两个POI数据版本号是相邻的版本号,则获取请求的POI数据版本号对应的有更新的子网格的POI数据和POI索引,并将有更新的子网格的POI数据和POI索引打包为一个增量更新POI数据包发送至终端;若所述两个版本号是非相邻的版本号,则根据本地保存的POI数据版本号、请求的POI数据版本号及所述本地保存的POI数据版本号与请求的POI数据版本号之间所有版本号对应的POI数据和POI索引生成一个增量更新POI数据包。参阅图10所示,本发明实施例提供一种POI信息检索装置,包括接收单元100,词组生成单元101,POI标识筛选单元102,子网格的标识和长度偏移量获取单元103,POI数据位置获取单元104,POI数据获取单元105,其中:接收单元100,用于接收用户输入的检索词;并词组生成单元101,用于按照预设规则对所述检索词进行划分,生成至少一个词组;POI标识筛选单元102,用于针对第一个词组,从本地保存的POI索引中的POI标识中,筛选与所述第一个词组匹配的POI标识;针对除所述第一词组之外的每一个词组,均从该词组的前一个词组筛选得到的POI标识中筛选该词组匹配的POI标识,并将对最后一个词组筛选得到的POI标识作为所述检索词对应的POI标识;子网格的标识和长度偏移量获取单元103,用于从本地保存的POI索引中,获取所述POI标识对应的子网格的标识和子网格的长度偏移量;POI数据位置获取单元104,用于根据获取的所述子网格的标识和获取的所述子网格的长度偏移量,获取POI数据在所述子网格中的位置;POI数据获取单元105,用于根据获取的所述POI数据在所述子网格中的位置,从本地保存的POI数据中获取所述检索词对应的POI数据。综上所述,本发明实施例中,终终端向服务器发送携带本地保存的POI数据版本号及请求的POI数据版本号的POI更新数据包请求消息;终端接收服务器基于POI更新数据包请求消息生成的增量更新POI数据包;基于上述增量更新POI数据包中包含的新版POI数据更新本地保存的子网格的POI数据,以及基于增量更新POI数据包中包含的新版POI索引更新本地保存的子网格的POI索引,所述POI索引至少包括POI标识、POI数据所在子网格的标识和POI数据在所在子网格的长度偏移量。采用上述技术方案,将POI数据和POI索引分开进行保存,终端基于服务器发送的增量更新POI数据包,仅更新发生变化的POI信息,降低了终端在本地进行POI信息更新的复杂度;并且,由于增量更新POI数据包中仅包含发生更新的POI信息,该发生更新的POI信息的数据量远远小于完整版本的POI信息的数据量,因此,仅传输增量更新POI数据包能够有效减少传输POI信息所占用的带宽。另一方面,终端基于服务器发送的增量更新POI数据包更新本地保存的POI信息,当检测到用户输入的检索词时,即获取该检索词对应的POI数据;采用本发明技术方案,由于POI数据和POI索引均保存在终端本地,因此,在终端没有网络连接的情况下,当用户输入检索词时,终端即可快速查找该检索词对应的POI索引,并基于该POI索引获取到相应的POI数据呈现给用户,从而提高了导航电子地图的可操作性,并提高了用户体验。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用保存介质(包括但不限于磁盘保存器、CD-ROM、光学保存器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可保存在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读保存器中,使得保存在该计算机可读保存器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1