一种地图数据对比方法和装置与流程

文档序号:20839116发布日期:2020-05-22 17:16阅读:234来源:国知局
一种地图数据对比方法和装置与流程

本发明实施例涉及电子地图技术领域,尤其涉及一种地图数据对比方法和装置。



背景技术:

现时车载音响普遍具备导航功能,而导航软件所用到的地图数据的正确性对于驾驶者来说至关重要,所以地图数据的测试验证成为了重要一环。当新的地图发布前必须检验其数据的正确性,防止地图数据错误,目前检测地图数据的方法是利用地图数据查询软件针对新地图的数据与已发布的地图数据进行对比核查,测试人员需要用地图数据查询软件分别打开新地图和已发布的地图,分别在两个地图里测试人员手工逐个输入选定区域的位置数据,然后测试员去对比这两个区域的差异,如果数据一致则在测试报告上填写这个地图位置数据的测试结果,然后再选择下一组位置数据,再进行对比,而地图的数据包含的信息量相当庞大,一个地图的位置数据有682万条记录。

现有技术中,对于两份不同的地图数据,需要准确知道数据中的差异点,可以通过文本对比工具对数据库文件进行对比。这种方式对于仅具有普通数据类型的数据库来说没有太大问题,然而对于含有blob数据类型的数据库,就无法准确判断该两份数据的差异。



技术实现要素:

本发明实施例提供一种地图数据对比方法和装置,用以解决现有技术中对于含有blob数据类型的数据库,就无法准确判断该两份数据的差异的问题。

第一方面,本发明实施例提供一种地图数据对比方法,包括:

基于数据库文件的表名称、主键值和字段值,依次对两份地图数据进行对比;若判断获知两份地图数据的表名称和主键值均相同,且表中字段内容为blob型字段,则基于blob型字段的数据在内存中的结构进行逐层对比。

作为优选的,还包括:

若判断获知两份地图数据的表名称和主键值均相同,且表中字段内容为普通类型字段,则直接进行数据对比;所述普通类型字段包括整型字段、浮点型字段和字符型字段。

作为优选的,则基于blob型字段的数据在内存中的结构进行逐层对比,具体包括:

对blob型字段的数据按照数据在内存中的结构进行解析,并对解析后的数据按层次关系进行对比;若判断获知某一层数据有不同的值,则将对应的数据记录到对比结果中,如果某一层的数据相同,则进行下一层次的对比,直到所有层次的数据对比完成。

作为优选的,具体包括:

若判断获知两份地图数据的表名称不相同,则将对应的地图数据的表名称记录到对比结果中。

作为优选的,还包括:

若判断获知两份地图数据的表名称相同,则对表名称相同的内容按表的主键值进行分类,若判断获知表的主键值不同,则将对应的表名称和主键值记录到对比结果中。

作为优选的,还包括:

把对比结果输出到数据表的对比报告中。

第二方面,本发明实施例提供一种地图数据对比装置,包括:

提取模块,获取待对比的两份地图数据的表名称、主键值和字段值;

对比模块,基于数据库文件的表名称、主键值和字段值,依次对两份地图数据进行对比;若判断获知两份地图数据的表名称和主键值均相同,且表中字段内容为blob型字段,则基于blob型字段的数据在内存中的结构进行逐层对比。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明第一方面实施例所述地图数据对比方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明第一方面实施例所述地图数据对比方法的步骤。

本发明实施例提供的一种地图数据对比方法和装置,读取数据库文件后,按照表名称,主键值和字段值的顺序先后进行对比,把存在差异的数据记录到对比结果中,如果字段类型是普通数据类型(整型,浮点型,字符型),则可以直接进行对比;如果字段是blob类型,就需要在内存中按照它原来的结构进行解析,再对解析后的数据按层次进行对比,把有差异的数据记录到对比结果中。最后把对比结果输出到对比报告中。可以对blob类型的数据进行有效的对比,从而分析出数据的具体差异,对比结果更加准确可靠。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例的地图数据对比方法流程框图;

图2为根据本发明实施例的一种电子设备结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

现有技术中,对于两份不同的地图数据,需要准确知道数据中的差异点,可以通过文本对比工具对数据库文件进行对比。这种方式对于仅具有普通数据类型的数据库来说没有太大问题,然而对于含有blob数据类型的数据库,就无法准确判断该两份数据的差异。

因此,本发明实施例提出一种地图数据对比方法和装置,读取数据库文件后,按照表名称,主键值和字段值的顺序先后进行对比,把存在差异的数据记录到对比结果中,如果字段类型是普通数据类型(整型,浮点型,字符型),则可以直接进行对比;如果字段是blob类型,就需要在内存中按照它原来的结构进行解析,再对解析后的数据按层次进行对比,把有差异的数据记录到对比结果中。最后把对比结果输出到对比报告中。可以对blob类型的数据进行有效的对比,从而分析出数据的具体差异,对比结果更加准确可靠。以下将通过多个实施例进行展开说明和介绍。

图1为本发明实施例提供一种地图数据对比方法,包括:

基于数据库文件的表名称、主键值和字段值,依次对两份地图数据进行对比;若判断获知两份地图数据的表名称和主键值均相同,且表中字段内容为blob型字段,则基于blob型字段的数据在内存中的结构进行逐层对比。

在本实施例中,作为一种优选的实施方式,首先,根据数据库文件包含的数据表名称进行归类,其次,再对表名称相同的内容按照表的主键值进行归类,再次,如果主键值相同,则对表的每一个字段内容进行对比。若字段的数据类型为blob型,就需要对blob型字段的数据按照它原来的结构进行解析,然后再对解析后的数据按层次关系进行对比。

按照表名称,主键值和字段值的顺序先后进行对比,把存在差异的数据记录到对比结果中,如果字段类型是普通数据类型(整型,浮点型,字符型),则可以直接进行对比;如果字段是blob型,就需要在内存中按照它原来的结构进行解析,再对解析后的数据按层次进行对比,把有差异的数据记录到对比结果中。最后把对比结果输出到对比报告中。可以对blob型类型的数据进行有效的对比,从而分析出数据的具体差异,对比结果更加准确可靠。

在上述实施例的基础上,还包括:

若判断获知两份地图数据的表名称和主键值均相同,且表中字段内容为普通类型字段,则直接进行数据对比;所述普通类型字段包括整型字段、浮点型字段和字符型字段。

在本实施例中,作为一种优选的实施方式,如果主键值相同,则对表的每一个字段内容进行对比。若字段数据类型为普通数据类型(整型,浮点型,字符型),可以直接对比这个字段的值是否相同,如果有不同的值,就把对应的字段记录到对比结果中。

在上述各实施例的基础上,则基于blob型字段的数据在内存中的结构进行逐层对比,具体包括:

对blob型字段的数据按照数据在内存中的结构进行解析,并对解析后的数据按层次关系进行对比;若判断获知某一层数据有不同的值,则将对应的数据记录到对比结果中,如果某一层的数据相同,则进行下一层次的对比,直到所有层次的数据对比完成。

在上述各实施例的基础上,具体包括:

若判断获知两份地图数据的表名称不相同,则将对应的地图数据的表名称记录到对比结果中。

在本实施例中,作为一种优选的实施方式,根据数据库文件包含的数据表名称进行归类,如果表名称有不同的,就把对应的表名称记录到对比结果中。

步骤一、按照表名称归集数据。

1.1读取数据库的表名称。

1.2对表名称不一致的数据记录到对比结果中。

1.3对表名称相同的数据,进行下一步对比。

在上述各实施例的基础上,还包括:

若判断获知两份地图数据的表名称相同,则对表名称相同的内容按表的主键值进行分类,若判断获知表的主键值不同,则将对应的表名称和主键值记录到对比结果中。

在本实施例中,作为一种优选的实施方式,若判断获知两份地图数据的表名称相同,再对表名称相同的内容按照表的主键值进行归类,如果表的主键值不同的,就把对应的表名称和主键值都记录到对比结果中。

步骤二、按照主键值归集数据。

2.1对表名称相同的数据按照主键值进行归类。

2.2把主键值不相同的数据记录到对比结果中。

2.3对主键值相同的数据,进行下一步对比。

在上述各实施例的基础上,还包括:

把对比结果输出到数据表形式的对比报告中。

在本实施例中,作为一种优选的实施方式,若字段的数据类型为blob类型,就需要对blob型字段的数据按照它原来的结构进行解析,然后再对解析后的数据按层次关系进行对比。如果某一层数据有不同的值,就把对应的数据记录到对比结果中,如果这一层的数据相同,则进行下一层次的对比,直到所有层次的数据对比完成。

步骤三、对各个字段进行对比。

3.1对主键值相同的数据,按照各字段的顺序进行对比。

3.2如果字段的类型普通数据类型,可以直接对比,把有差异的数据记录到对比结果中。

3.3如果字段的类型为blob型,按照它原来的结构进行解析,再对解析后的数据逐层进行对比,如果某一层数据不一致,就把该数据记录到对比结果中;如果一致,就进行下一层的对比,直到该blob型字段的数据对比完成。

步骤四、把对比结果输出到对比报告中。

4.1查看输出的对比报告文件。

4.2检查对比报告是否正确,对比报告以sqlite表的形式提供。

文本对比工具对于仅含有普通数据类型的数据可以进行有效的对比,但对于含有blob类型的数据,它的对比结果就很粗糙,不能让用户得到准确的数据差异。本发明实施例中提出的方法可以针对含有blob类型的数据库进行有效的对比,根据blob型字段的数据在内存中的结构进行逐层对比,把有差异的数据记录到对比结果中,最后,生成对比报告。

本发明实施例还提供一种地图数据对比装置,基于上述各实施例中的地图数据对比方法,包括:

提取模块,获取待对比的两份地图数据的表名称、主键值和字段值;

对比模块,基于数据库文件的表名称、主键值和字段值,依次对两份地图数据进行对比;若判断获知两份地图数据的表名称和主键值均相同,且表中字段内容为blob型字段,则基于blob型字段的数据在内存中的结构进行逐层对比。

本发明实施例提供了一种电子设备,如图2所示,该服务器可以包括:处理器(processor)810、通信接口(communicationsinterface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行上述各实施例提供的地图数据对比方法,例如包括:

基于数据库文件的表名称、主键值和字段值,依次对两份地图数据进行对比;若判断获知两份地图数据的表名称和主键值均相同,且表中字段内容为blob型字段,则基于blob型字段的数据在内存中的结构进行逐层对比。

此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的地图数据对比方法,例如包括:

基于数据库文件的表名称、主键值和字段值,依次对两份地图数据进行对比;若判断获知两份地图数据的表名称和主键值均相同,且表中字段内容为blob型字段,则基于blob型字段的数据在内存中的结构进行逐层对比。

综上所述,本发明实施例提供的一种地图数据对比方法和装置,读取数据库文件后,按照表名称,主键值和字段值的顺序先后进行对比,把存在差异的数据记录到对比结果中,如果字段类型是普通数据类型(整型,浮点型,字符型),则可以直接进行对比;如果字段是blob类型,就需要在内存中按照它原来的结构进行解析,再对解析后的数据按层次进行对比,把有差异的数据记录到对比结果中。最后把对比结果输出到对比报告中。可以对blob类型的数据进行有效的对比,从而分析出数据的具体差异,对比结果更加准确可靠。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1