zoukankan      html  css  js  c++  java
  • QGIS初识-离线编辑

    注:QGIS版本为3.4.8

            选择数据库,离线编辑功能,首次选择该工具,可点击转换为离线项目,选择需要离线的图层,在本地会生成一个offline.gpkg本地包。

             

               

    1 - Offline.gpkg本地包内容

             

    如上图所示,除了将我们选择的图层数据(以图层名+guid命名)本地缓存外,本地包中多了8张log日志表。

    1)        log_added_attrs,新增属性日志表,原表为空,图层新增字段后,相关记录保存到该日志表。如下图,在PIPESECTIONUSER表中新增了gcbh(工程编号字段),该表记录了相关信息。

               

    2)        log_added_features,新增要素日志表,原表为空,新增要素后如下,该表只记录新增要素的图层id和要素id,新增的要素删除,会从本表直接移除,新增要素的图形和属性信息仍然记录在本地对应的图层表中。如下图pipesectionuser图层(layerid为 4)新增了3条记录,日志表中对应记录了layer_id为4的1、2、3共3个要素。

                

                

    3)        log_feature_updates,属性更新日志表,原表为空,编辑图层属性后记录各图层属性信息变更情况。

              

    4)        log_fids, 记录当前所有图层layer_id与要素fid的对应关系,目前测试发现要素的新增、删除,几何对象的编辑(平移、顶点编辑、旋转、切分、合并、删除),要素属性的修改操作均不修改该表。用以与服务器端图层fid比对。  

               

    5)        log_geometry_updates,几何图形更新表。在对现有的几何图形进行要素移动、拆分、旋转、顶点编辑(增加、删除、移动顶点)等编辑动作,将最终的几何对象保存到该表。

       

    6)        log_indices,commit_no,编辑保存计数,每编辑保存一次,last_index自增加1。layer_id,当前图层数量计数。

      

    7)        log_layer_ids,图层ld表

      

    8)        log_remove_features,要素删除日志表。要素删除时从本地图层表中删除该记录同时在该表记录删除要素的layer_id和要素fid。

      

    2 - 发现的问题

    1)        测试过程中用高级数字化工具对同一管线依次进行切分、合并操作,要素记录到了log_remove_features、log_added_features,(合并过程手动更改了fid,手动选择合并的两个要素中的一个fid)但同步过程,会导致部分要素丢失或与保存前状态不相符!例:图中竖线进行了两次拆分动作,一根线段分成了左图中的三段,然后上面的两段合并,并保存。提交同步后,中间那段线段丢失。

    注:手动更改fid会导致各种bug,不手动改发生问题概率低。

        

    2)        字段删除未记录在任何表中,提交后该变更未同步。

    3 - 离线编辑功能总结

    1)        要素编辑以fid为唯一标识,手动修改fid会导致各种bug,完善该功能时考虑fid禁止编辑。

    2)        管线的切分,起点那段管线会保留原有fid,另一段会新增个fid记录。

    3)        管线的合并,fid会变成新的,如手动编辑fid与合并前的某一段fid一致,会导致要素丢失等问题。

    4)        要素的移动、顶点编辑、旋转、属性编辑均不会导致fid发生变化。

    5)        支持图层属性字段的新增,不支持图层属性字段的删除(本地包删除后并不会同步到服务端)。

    6)        服务端属性发生变化(与客户端离线前对比),离线包log_fids日志表记录了离线时所有图层的fid记录,离线包同步到服务端时,会先通过该表与服务端进行比对,服务端删除过的fid,离线端对该fid的编辑不生效。对比后服务端仍存在的fid的状态以离线端为准(不论服务端进行过什么操作)。对比fid的过程在数据量较大时会导致qgs客户端卡死。

    作者: GoodGF
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    System.BadImageFormatException: 未能加载文件或程序集""或它的某一个依赖项。试图加载格式不正确的程序。
    Win10中解决SYSTEM权限获取,删Windows old
    Jenkins配置MSBuild编译.net4.6的项目
    TeamViewer11的安全设置
    Jenkins配置的邮件无法发送的问题
    Jenkins 2.x版本修改启动端口号(Windows)
    Jenkins 2.x版本的安装步骤(Windows)
    CruiseControl.NET/CCNET安装包下载
    Jenkins+CCNET的另类部署图
    VisualSVN Server和Subversion的联系
  • 原文地址:https://www.cnblogs.com/gaofan/p/11194118.html
Copyright © 2011-2022 走看看