公开/公告号CN102930049A
专利类型发明专利
公开/公告日2013-02-13
原文格式PDF
申请/专利权人 沈阳美行科技有限公司;
申请/专利号CN201210462358.7
申请日2012-11-16
分类号G06F17/30;
代理机构沈阳晨创科技专利代理有限责任公司;
代理人任玉龙
地址 110004 辽宁省沈阳市浑南新区远航西路3号1T国际202室
入库时间 2024-02-19 17:47:45
法律状态公告日
法律状态信息
法律状态
2022-03-29
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F17/30 专利号:ZL2012104623587 变更事项:专利权人 变更前:沈阳美行科技有限公司 变更后:沈阳美行科技股份有限公司 变更事项:地址 变更前:110004 辽宁省沈阳市浑南新区远航西路3号1T国际202室 变更后:110000 辽宁省沈阳市浑南区上深沟村861-6号
专利权人的姓名或者名称、地址的变更
2015-07-29
授权
授权
2013-03-20
实质审查的生效 IPC(主分类):G06F17/30 申请日:20121116
实质审查的生效
2013-02-13
公开
公开
技术领域
本发明涉及导航领域,特别涉及了一种支持增量更新的嵌入式用 户兴趣点数据编译方法。
背景技术
近几年电子地图技术得到了飞速发展,用户兴趣点数量已达到了 千万级级别,但是每年用户兴趣点都有大量的数据发生变更,这样市 场上的地图及导航产品就需要不断地更新升级才能与现实世界保持 新鲜。目前市场上的嵌入式导航及地图产品的数据存储基本都采用二 进制文件的方式(如kiwi数据存储方式)存储,此格式数据的升级 只能是整体替换,无法实现增量更新,这样导致了用户更新数据时无 法通过移动网络方式来实现。这种基于二进制格式的传统数据编译方 法生成的数据具有较大的局限性,大大限制了用户更新数据的途径及 更新的方便性。导航系统:全称“汽车导航系统”,是嵌入式硬件、 GPS、地理信息技术及软件紧密结合的产物,为汽车驾驶者提供全面、 细致、准确的行车引导。
发明内容
增量更新:指的是只更新变化的数据的更新方式,又称差分更新。
本发明的目的是为了解决传统数据编译方法生成的数据无法在 嵌入设备上实现增量更新的问题,特提供了一种支持增量更新的嵌入 式用户兴趣点数据编译方法。
本发明提供了一种支持增量更新的嵌入式用户兴趣点数据编译 方法,其特征在于:用户兴趣点数据分为两种,一种为供检索使用的 用户兴趣点基础数据,另一种为增量更新专用的差分数据,分为称为 基础数据与差分数据; 基础数据生成方法:
为了使数据生成过程有较高的可复用性及扩充性,对数据生成分 几步来实现,数据生成流程;
注:
步骤1
【原始数据】为数据提供商(简称图商)提供的原始数据, 不同图商提供的数据格式是不一样的,我们为了减小因图商数 据格式不同带来的重复问题,将图商提供的数据进行一次转 换,转换为我们自定义的通用数据格式的数据即【美行数据】, 以后所有数据的编译工作都是基于【美行数据】数据进行的;
步骤2
将【美行数据】转换为导航、地图软件均可以直接使用的目标 数据,如用户兴趣点数据的基础数据;
【美行数据】的生成方法比较简单,只是对【原始数据】数据 进行物理存储格式的转换,不会对数据的语义进行变更;
【目标数据】是生成的最终数据,数据以嵌入式数据库的方式存在, 每个省为一个数据库;
注:
按ID排序
将【美行数据】数据按照ID从小到大的顺序排序;
取出所在的省的数据库
根据用户兴趣点经纬度判断所在的省,并取出所在省的数据库 句柄;
查找所属块的ID
根据用户兴趣点ID在【目标数据】中此用户兴趣点所在的块的 下标;
创建新块
如果未找到,变创建一个新的块;
保持数据
将数据保存到【目标数据】中;
差分数据的生成方法:
以图商提供的两版数据为例(版本1、版本2),详细介绍差分数 据的生成流程及每个流程的生成方法;
注:
步骤1:生成基础数据
将图商提供的原始数据【原始数据版本1】、【原始数据版本2】 生成美行数据【美行数据版本1】、【美行数据版本2】,并将【美 行数据版本1】生成导航、地图软件可直接使用的目标数据【目 标数据版本1】;
步骤2:生成MX差分数据
在【美行数据版本1】与【美行数据版本2】的基础上生成通用 格式的差分数据【美行差分数据版本1-2】;
需要关注的用户兴趣点信息有:
1、根据用户兴趣点信息的用处不同进行分类——关键属性、附 加属性,关键属性用来确定用户兴趣点的唯一性,判断两版数 据【美行数据版本1】与【美行数据版本2】中的信息是否为同 一条用户兴趣点,附加属性用来确定用户兴趣点是否发生变化;
差分数据中数据分为三种情况:新增、删除、变更,变更的数据 需要知道哪些属性发生变更;
注:
制作美行数据版本1ID并按ID排序
将数据【美行数据版本1】的关键属性组合成一个二进制数据当作 用户兴趣点的ID,这样每个用户兴趣点都具有了一个ID;将【美 行数据版本1】数据按照此ID从小到大排序;
制作美行数据版本2ID并按ID排序
与(1)相同,将【美行数据版本2】数据制作ID并排序; 美行数据版本2中查找美行数据版本1的ID
遍历【美行数据版本1】中的每条用户兴趣点,查看一下此条用户 兴趣点数据在【美行数据版本2】数据中是否存在;
保存删除的数据
如果用户兴趣点ID在【美行数据版本2】中不存在标明本条用户 兴趣点被删除了,保持此用户兴趣点到差分数据【美行差分数据 版本1-2】中,并标记为删除;
判断附加属性是否相同
如果用户兴趣点ID在【美行数据版本2】中存在,表明是同一条 用户兴趣点,然后比较附加属性是否完全相同;
保存变更数据
如果用户兴趣点的附加属性不完全相同,则表明本条用户兴趣点 是需要变更的用户兴趣点,标记为变更,并记录哪个属性需要变 更;
保存相同的数据
如果用户兴趣点的附加属性完全相同,则表明本条用户兴趣点是 没有发生任何变更,保存到相同数据【美行相同数据版本1-2】中 作为数据记录;
在美行数据版本1中查找美行数据版本2的ID
在【美行数据版本1】数据中查找【美行数据版本2】数据,所有 没有找到的数据便是新增的数据,将其保存到差分数据【美行差 分数据版本1-2】中,标记为新增;并将每条用户兴趣点数据赋予 一个唯一ID,这个ID从【美行数据版本1】中最大的那个ID开始累 加;
以上处理过程最终生成MX格式的差分数据;
步骤3:生成目标差分数据
目标差分数据是利用【目标数据版本1】与【美行差分数据版本 1-2】生成的;目标数据需要对【详细数据】与【名称数据】分别进 行实现方案的设计;
【详细差分数据】差分数据的实现方案:
注:
根据ID排序
将差分数据【美行差分数据版本12】按照ID从小到大排序,这样 新增的用户兴趣点都会排在后面;
编译数据
将数据组织成【详细差分数据】的格式;
更加ID查找块ID
在【目标数据版本1】数据库的【详细数据】表中查找ID第一个小 于等于用户兴趣点ID的记录,由于【详细数据】记录中数据ID是 从小到大存储的且记录了最后一个,所以如果找到了说明此用户 兴趣点一定在此条记录中;如果没找到,说明是新增的用户兴趣 点;
保存变更、删除的数据
在【详细差分数据】中创建一条记录,ID为【详细数据】中相 应的ID,并保存此用户兴趣点信息到此记录中;
数据大小大于X MB
如果新增的用户兴趣点数据大小达到X MB(根据导航、地图所 运行的硬件内存来确定,如10MB),在【详细差分数据】中创 建一条记录保存此块用户兴趣点信息;
保存变更的数据
在【详细差分数据】中创建一条记录保存此块用户兴趣点信息; 【名称差分数据】差分数据的实现方案:
注:
取得用户兴趣点名称字符
将差分数据【美行差分数据版本1-2】数据中用户兴趣点名称中出 现的汉字都抽取出来;
编译数据
将①组织的数据编译成二进制数据的格式形式;
保存数据块
将此汉字的信息保存到【目标差分数据版本1-2】的【名称差分 数据】中,以上是差分数据的编译生成过程。
本发明的优点:
解决了传统数据编译方法生成的数据无法在嵌入设备上实现增 量更新的问题。一千万条用户兴趣点数据,采用传统数据库格式,存 储Size为10GB,检索过程需要30MB内存,使用本方案后存储Size 为1.2GB,检索过程只需要4MB内存。本专利实现了一种新的能够 支持增量更的用户兴趣点数据的编译方法,及基于此数据的增量更新 方法。此方法编译生成的数据,数据量小、软件运行时对内存及CPU 要求低,完美实现了嵌入式设备增量更新的要求。
附图说明
下面结合附图及实施方式对本发明作进一步详细的说明:
图1为数据流程图;
图2为每个省为一个数据库的详细的生成步骤示意图;
图3为差分数据生成流程图;
图4为根据用户兴趣点信息的用处不同进行分类示意图;
图5为差分数据的详细生成流程图;
图6为【详细差分数据】差分数据的实现方案流程图;
图7为将差分数据【美行差分数据版本1-2】数据中用户兴趣点 名称中出现的汉字抽取示意图。
具体实施方式
实施例
一种支持增量更新的嵌入式用户兴趣点数据编译方法,其特征在 于:用户兴趣点数据分为两种,一种为供检索使用的用户兴趣点基础 数据,另一种为增量更新专用的差分数据,分为称为基础数据与差分 数据;
基础数据生成方法:
为了使数据生成过程有较高的可复用性及扩充性,对数据生成分 几步来实现,数据生成流程;
注:
步骤1
【原始数据】为数据提供商(简称图商)提供的原始数据, 不同图商提供的数据格式是不一样的,我们为了减小因图商数 据格式不同带来的重复问题,将图商提供的数据进行一次转 换,转换为我们自定义的通用数据格式的数据即【美行数据】,
以后所有数据的编译工作都是基于【美行数据】数据进行的;
步骤2
将【美行数据】转换为导航、地图软件均可以直接使用的目标 数据,如用户兴趣点数据的基础数据;
【美行数据】的生成方法比较简单,只是对【原始数据】数据进 行物理存储格式的转换,不会对数据的语义进行变更;
【目标数据】是生成的最终数据,数据以嵌入式数据库的方式存在, 每个省为一个数据库;
注:
按ID排序
将【美行数据】数据按照ID从小到大的顺序排序; 取出所在的省的数据库
根据用户兴趣点经纬度判断所在的省,并取出所在省的数据库
句柄;
查找所属块的ID
根据用户兴趣点ID在【目标数据】中此用户兴趣点所在的块的 下标;
创建新块
如果未找到,变创建一个新的块;
保持数据
将数据保存到【目标数据】中;
差分数据的生成方法:
以图商提供的两版数据为例(版本1、版本2),详细介绍差分数 据的生成流程及每个流程的生成方法;
注:
步骤1:生成基础数据
将图商提供的原始数据【原始数据版本1】、【原始数据版本2】 生成美行数据【美行数据版本1】、【美行数据版本2】,并将【美 行数据版本1】生成导航、地图软件可直接使用的目标数据【目 标数据版本1】;
步骤2:生成MX差分数据
在【美行数据版本1】与【美行数据版本2】的基础上生成通用 格式的差分数据【美行差分数据版本1-2】;
需要关注的用户兴趣点信息有:
1、根据用户兴趣点信息的用处不同进行分类——关键属性、附 加属性,关键属性用来确定用户兴趣点的唯一性,判断两版数 据【美行数据版本1】与【美行数据版本2】中的信息是否为同 一条用户兴趣点,附加属性用来确定用户兴趣点是否发生变化;
差分数据中数据分为三种情况:新增、删除、变更,变更的数据 需要知道哪些属性发生变更;
注:
制作美行数据版本1ID并按ID排序
将数据【美行数据版本1】的关键属性组合成一个二进制数据当作 用户兴趣点的ID,这样每个用户兴趣点都具有了一个ID;将【美 行数据版本1】数据按照此ID从小到大排序;
制作美行数据版本2ID并按ID排序
与(1)相同,将【美行数据版本2】数据制作ID并排序; 在美行数据版本2中查找美行数据版本1的ID
遍历【美行数据版本1】中的每条用户兴趣点,查看一下此条用户 兴趣点数据在【美行数据版本2】数据中是否存在;
保存删除的数据
如果用户兴趣点ID在【美行数据版本2】中不存在标明本条用户 兴趣点被删除了,保持此用户兴趣点到差分数据【美行差分数据 版本1-2】中,并标记为删除;
判断附加属性是否相同
如果用户兴趣点ID在【美行数据版本2】中存在,表明是同一条 用户兴趣点,然后比较附加属性是否完全相同;
保存变更数据
如果用户兴趣点的附加属性不完全相同,则表明本条用户兴趣点 是需要变更的用户兴趣点,标记为变更,并记录哪个属性需要变 更;
保存相同的数据
如果用户兴趣点的附加属性完全相同,则表明本条用户兴趣点是 没有发生任何变更,保存到相同数据【美行相同数据版本1-2】中 作为数据记录;
在美行数据版本1中查找美行数据版本2的ID
在【美行数据版本1】数据中查找【美行数据版本2】数据,所有 没有找到的数据便是新增的数据,将其保存到差分数据【美行差 分数据版本1-2】中,标记为新增;并将每条用户兴趣点数据赋予 一个唯一ID,这个ID从【美行数据版本1】中最大的那个ID开始累 加;
以上处理过程最终生成MX格式的差分数据;
步骤3:生成目标差分数据
目标差分数据是利用【目标数据版本1】与【美行差分数据版本 1-2】生成的;目标数据需要对【详细数据】与【名称数据】分别进 行实现方案的设计;
【详细差分数据】差分数据的实现方案:
注:
根据ID排序
将差分数据【美行差分数据版本1-2】按照ID从小到大排序,这样 新增的用户兴趣点都会排在后面;
编译数据
将数据组织成【详细差分数据】的格式;
更加ID查找块ID
在【目标数据版本1】数据库的【详细数据】表中查找ID第一个小 于等于用户兴趣点ID的记录,由于【详细数据】记录中数据ID是 从小到大存储的且记录了最后一个,所以如果找到了说明此用户 兴趣点一定在此条记录中;如果没找到,说明是新增的用户兴趣 点;
保存变更、删除的数据
在【详细差分数据】中创建一条记录,ID为【详细数据】中相 应的ID,并保存此用户兴趣点信息到此记录中;
数据大小大于X MB
如果新增的用户兴趣点数据大小达到X MB(根据导航、地图所 运行的硬件内存来确定,如10MB),在【详细差分数据】中创 建一条记录保存此块用户兴趣点信息;
保存变更的数据
在【详细差分数据】中创建一条记录保存此块用户兴趣点信息; 【名称差分数据】差分数据的实现方案:
注:
取得用户兴趣点名称字符
将差分数据【美行差分数据版本1-2】数据中用户兴趣点名称中出 现的汉字都抽取出来;
编译数据
将①组织的数据编译成二进制数据的格式形式;
保存数据块
将此汉字的信息保存到【目标差分数据版本1-2】的【名称差分 数据】中,以上是差分数据的编译生成过程。
机译: 在嵌入式微控制器中实现多种格式寻址的方法,一种用于实现该方法的编译器以及一种用于使用该方法和编译器的微控制器
机译: 一种计算机实现的方法,一种计算机程序产品以及一种嵌入式系统,用于通过嵌入式系统上的客户端来提高数据检索的速度
机译: 一种计算机实现的方法,一种计算机程序产品以及一种嵌入式系统,用于通过嵌入式系统上的客户端来提高数据检索的速度