一种基于信息特征码的地理空间矢量数据增量更新方法与流程

文档序号:40639365发布日期:2025-01-10 18:45阅读:19来源:国知局
一种基于信息特征码的地理空间矢量数据增量更新方法与流程

本发明涉及地理空间数据应用,尤其涉及一种基于信息特征码的地理空间矢量数据增量更新方法。


背景技术:

1、目前,地理空间矢量数据增量更新入库主要使用两种方法,一种是基于图形特征匹配的增量更新,先基于几何特征进行要素匹配,然后逐个比对匹配要素的坐标点和属性信息;另一种是基于要素唯一标识码(一般是生成的gu id码,与要素的特征无关联)的增量更新,该方法通过查找要素唯一标识码匹配要素,然后逐个比对要素的坐标点和属性信息,虽然避免了几何特征匹配,但仍然要对要素特征进行逐一比对,且由于要素在编辑中涉及打断、分割、合并等操作,其唯一标识码与对象之间的关系难以继承和维护,会产生大量的假新增和假删除记录。上述常规方法随着数据范围和数据复杂度的增加,查找和比对运算次数急剧增长,导致耗时也将大幅度增加,在大面积、复杂要素的更新场景下,无法满足高效增量更新的需求,本发明提出的技术方法意在解决大面积、复杂要素场景下增量更新效率低下的问题。


技术实现思路

1、本发明的目的是为了解决现有技术中存在的缺点,而提出的一种基于信息特征码的地理空间矢量数据增量更新方法。

2、为了实现上述目的,本发明采用了如下技术方案:

3、设计一种基于信息特征码的地理空间矢量数据增量更新方法,具体步骤如下:

4、s1、建立空间数据库,用于存储地理空间矢量要素;

5、s2、地理空间矢量要素设置新增时间和删除时间标识,建立增量存储机制,删除时间用于标识要素的删除状态和删除时间,新增时间则标识要素产生的时间;

6、s3、建立地理空间矢量要素增删改事件与空间数据库记录增删改的对应关系,要素新增事件触发在空间数据库表插入新纪录,并添加新增时间信息;要素删除事件触发在数据库表对应记录中添加删除时间;要素修改事件触发在数据库表按修改后的现状信息插入新记录,添加新增时间信息,同时给要素原始记录添加删除时间;

7、s4、设置地理空间矢量要素信息特征码存储字段feature与feature_salt,用于存储生成地理空间矢量要素信息特征码和对要素特征加盐后生成的信息特征码,feature_salt用于数据校验,防止信息特征码的碰撞;

8、s5、建立信息特征码生成器;

9、s6、建立信息特征码更新触发器,当矢量要素本身发生增删改事件时,触发对矢量要素feature和feature_salt的更新,由信息特征码更新触发器调用信息特征码生成器,以维护信息特征码与要素特征的匹配性;

10、s7、获取数据源进行增量更新入库。

11、优选的,所述生成器有如下特性:根据给定要素,组合要素特征字符串m0:地物类型(geotype)|地物编码(code)|坐标信息串|属性信息串,属性信息串不包含信息特征码字段,然后使用散列函数nn=h1(mn)生成特征码n0,存入要素的feature字段中,在要素特征字符串m0前添加要素的图层名,组合成为新的要素特征字符串m1:layername|m0,使用上述散列函数生成特征码n1,存入要素的feature_salt字段中。

12、优选的,坐标信息串具体如下:

13、x1|y1|z1|pointtype1|x2|y2|z2|pointtype2|.......xn|yn|zn|pointtypen。

14、优选的,属性信息串具体如下:

15、field1|value1|field2|value2|......fieldn|valuen。

16、优选的,在s7中执行如下流程:

17、1、获取增量更新区域范围p={p1,p2......pn};

18、2、获取增量更新数据源集合,使用p与数据源集合进行相交运算,获取完全和局部在p内的矢量要素,构造集合updatelist;

19、3、遍历updatelist,获取集合内要素的信息特征码集合updatefeaturelist与updatefeaturelist_salt,三个集合索引号一一对应;

20、4、使用p作为空间参数访问目标空间数据库,获取空间数据库要素完全和局部在p内的要素,缓存数据并构造集合databaselist;

21、5、遍历databaselist,获取集合内要素的信息特征码集合databasefeaturelist与databasefeaturelist_salt,三个集合索引号一一对应;

22、6、构造地理空间矢量要素的新增和删除集合deletelist、newlyaddedlist;

23、7、构造哈希表ht1,通过散列函数h2(key)将databasefeaturelist中的记录逐一添加到哈希表ht1,添加过程中,若在相应内存位置已有数据,则不添加,同时表明有重复值,需要去除重复值,得到databasefeaturelist对应的索引号n,将databaselist中索引号n对应的要素添加到deletelist;

24、8、再通过散列函数h2(key)将updatefeaturelist中记录逐一添加到哈希表ht1,若在相应内存位置数据为空,则表明databasefeaturelist不存在相同的记录值,代表该要素为新增,得到updatefeaturelist的索引号,将updatelist对应索引号的要素添加到newlyaddedlist,若在相应内存位置已有数据,则表明databasefeaturelist中有相同的记录值,代表要素未变化,不做任何操作;

25、9、构造哈希表ht2,通过散列函数h2(key)将updatefeaturelist中的记录逐一添加到哈希表ht2,添加过程中,若在相应内存位置已有数据,则不添加;

26、10、再通过散列函数h2(key)将databasefeaturelist中记录逐一添加到哈希表ht2,若在相应内存位置数据为空,则表明updatefeaturelist不存在相同的记录值,代表该要素为删除,得到databasefeaturelist的索引号,将databaselist对应索引号的要素添加到deletelist,若在相应内存位置已有数据,则表明updatefeaturelist中有相同的记录值,代表要素未变化,则不添加;

27、11、构造地理空间矢量要素的新增和删除集合deletelist_salt、newlyaddedlist_salt,分别代替deletelist和newlyaddedlist,同时使用databasefeaturelist_salt代替databasefeaturelist,使用updatefeaturelist_salt代替updatefeaturelist,构造哈希表ht3和ht4,通过散列函数h2(key)重复执行上述步骤7~10;

28、12、将集合deletelist_salt与集合deletelist取交集,结果存储到deletelist,将newlyaddedlist_salt与集合newlyaddedlist取并集,结果存储到newlyaddedlist;

29、13、将newlyaddedlist作为要素新增集合,deletelist作为要素删除集合,按照2~3约定的规则,更新建立的空间数据库。

30、本发明提出的一种基于信息特征码的地理空间矢量数据增量更新方法,有益效果在于:在地理空间矢量数据增量更新领域,增量比对一般在二维空间中进行,需要经过复杂的空间搜索、匹配,然后逐一遍历其空间或属性特征,算法的时间和空间复杂度高,运行效率低,随着地理空间矢量要素数量及要素本身复杂度的提高,其效率会急剧下降。本发明将二维空间的复杂计算转换到一维空间的简单计算,降低了程序开发的复杂度,提高了执行效率;在一维空间中比对时,使用哈希表存储要素信息特征码,要素存储位置由要素特征码计算获得,要素查找匹配效率不会随着数据量的增大而降低,同时,信息特征码使用固定的长度描述了要素的空间和属性特征,用于判断要素的变化,其比对效率与地理空间矢量要素的复杂性无关。生成要素信息特征码需要遍历要素特征,本发明将此环节前置到了要素变更触发器中,将效率损耗均摊到了每个要素增删改环节。因此,本发明提高了增量更新的效率,在基础测绘、城市勘测大面积更新场景中,具有较好的支撑作用。

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