上一篇文章学习了ArcGIS有关版本机制实现的基本原理,本文结合ArcGIS的数据编辑知识来将版本编辑、协调、解决冲突、提交更改的整个过程加以说明。

同上篇文章一样,写作本文的初始意图是因为目前的项目涉及数据编辑模块和版本控制模块的功能,在功能实现过程中记录自己学习的过程。

1. 开始版本化编辑

在默认情况下,ArcMap编辑会话被设置为执行版本编辑。表示只能编辑已注册为版本的数据。

ArcMap中每个编辑会话只能编辑一个版本。因此如果地图引用了一个版本,则该版本自动打开以供编辑;如果引用了多个版本,则必须选择其中一个版本来进行编辑。

开始编辑之后,您处理的是自己的版本表示。连接到同一版本的其他用户在您保存更改之前不会看到您所做的任何修改。两人可同时进行编辑操作而就不存在锁定的机制。

假设您已经开始编辑某个版本,另外一个用户也在编辑与您编辑内容相同的区域且其将更改已经保存编辑,此时,当您进行保存编辑的操作的时候,ArcGIS会协调这两个版本表示,如果你们编辑的内容存在冲突部分,则可以通过指定优先使用编辑会话还是优先使用版本的数据库表示来首先解决冲突

2. 冲突与协调

在您编辑版本的过程中,其他用户可能已经以一种与您的编辑内容相冲突的方式对目标版本进行了更改。协调操作将检查这些冲突。

存在两类冲突:

  • 保存对某版本的编辑时该版本中的同一要素在另一个编辑会话中进行了更新(或要素在一个编辑会话中得打更新,而在另一个会话中被删除),此时所出现的冲突;
  • 同一要素在目标版本和子版本中同时更新(或要素在一个版本中进行更新,而在另一个版本中被删除),此时所出现的冲突;

定义冲突的方式(冲突按何种规则来检测):

  • 行-另一用户与您编辑同一行、同一要素,或是在拓扑结构上相关的要素。即使你们编辑不同的属性也会发生冲突。这是默认设置。
  • 列-另一用户与您编辑同一行或同一要素的同一属性。

针对两类冲突存在两类协调:

  • 隐式协调过程-保存对版本的编辑时出现的冲突

    对于第一种类型的冲突,不同的编辑者在不同的编辑会话中更改了同一版本地理数据库中的同一要素,或同一要素在一个编辑会话中被删除,而在另一个编辑会话中发生更改,保存编辑内容时,ArcGIS会检测该版本地理数据库中编辑会话之间的所有冲突并根据“编辑选项-版本化”选项卡上的保存首选项设置来解决这些冲突。由于这一协调过程是可以预先设定的,因此是一个隐式过程。

  • 显式协调过程-协调子版本和目标版本时所产生的冲突

    执行“版本化”工具栏中的“协调”按钮操作时会显示协调子版本与其父版本之间的所有冲突,是一个显式过程。

为了能够执行协调过程,必须满足以下条件:

  • 您必须是当前编辑正在协调的版本的唯一用户;
  • 任何其他用户都不能编辑目标版本。一个例外情况是目标版本是DEFALUT版本,即使在其他用户正在编辑DEFALUT版本时,您也可以针对该目标版本进行协调。
  • 必须能够查看目标版本,这意味着目标版本可以是公开的(public),也可以是受保护的(protected)。如果目标版本是私有的(private),则您必须是该版本的所有者或者ArcSDE管理员;
  • 如果工作流程是一个用户编辑,另一个用户协调,则要确保协调的用户对已在版本中修改的所有要素类和表具有所有权限,否则该用户将无法协调。执行协调过程的用户必须对已被修改的任何关系双方具有所有权限,其中包括简单关系或复杂关系。在这种类型的工作流程中,执行协调过程的用户还必须具有足够的版本权限。协调用户必须能够修改要协调的版本(表示该版本必须是公开的),而且必须能够查看目标版本(这表示该用户必须拥有该目标版本或者目标版本必须是公开的或者受保护的)。

当进行协调时,您正在编辑的版本将使用目标版本中的更改内容进行更新。您可能注意到,要素会随应用于编辑会话的目标版本中任意要素或记录的插入、更新和删除而发生改变。

如果存在冲突,ArcGIS 会将其解决,具体依照正在编辑版本的制图表达还是目标版本制图表达将取决于首选项设置。将冲突解决后,您可以逐一查看这些冲突,如有必要,可进行任何更改。例如,如果依照编辑版本解决了冲突,您可以选择依照目标版本进行替换,或者使用编辑工具通过其他方式对其进行修改。

协调过程仅更新编辑版本,以便 ArcGIS 可以检查冲突;此过程不会将更改内容合并到目标版本中。完成协调并查看所有冲突后,通过将更改提交到目标版本来完成合并过程。

想要让 ArcGIS 在解决冲突时最初采用的规则:优先使用正在编辑的版本(称为编辑版本)或目标版本 - 如果优先使用目标版本进行解决,则在当前编辑会话中的所有冲突要素均会被其在目标版本中的制图表达所取代。如果有多个用户在编辑同一个版本并检测出冲突,则用第一个保存的要素替换编辑会话的表示。如果选择的解决规则是优先编辑版本,则当前编辑会话中的所有冲突要素均优先于目标版本中的冲突制图表达。

无法使用“撤消”操作来撤消协调操作。无论何时尝试撤消协调操作,您都会收到一条错误消息,因为“撤消”操作不受支持。要撤消协调,必须在未保存任何更改的情况下退出编辑会话。

查看冲突以及交互式冲突解决机制

如果在进行协调时编辑版本与目标版本之间出现冲突,可以在冲突对话框中以交互方式查看和解决这些冲突。只有将编辑选项设置为仅在不存在冲突时自动保存更改,才会显示冲突对话框。

解决冲突时,您需决定要保留要素和属性的哪个表示。

可以在多个不同级别中解决冲突:

  • 字段级别(属性)-选择要使用哪种制图表达来替换编辑版本的数据中的特定属性值。这些更改将应用于特定的某一字段或多个字段。
  • 行级别(单个要素)-如果在行级别中解决冲突,所选的制图表达将应用于该要素中的所有冲突。
  • 类级别(整个要素类)-如果在类级别中解决冲突,用于替换数据编辑版本的数据制图表达将应用于该要素类中的所有冲突要素和属性。
  • 根级别(特定协调操作中所有要素类和要素中的所有冲突)-如果在根级别中解决冲突,将使用相同的制图表达解决在协调过程中检测到的所有冲突。例如,如果选择在根级别中替换为预协调版本,则列表中所有要素类和要素中的所有冲突都将以编辑内容中的方式得到解决。

如果一个编辑者对某个要素进行了更改,而另一个编辑者删除了该要素,则无法使用任何表示进行替换,并且这些菜单选项会被禁用。

3. 提交更改

协调并审阅了所有冲突后,便可提交对原始版本的更改。

其他正在读取您所提交的目标版本的用户在刷新他们的版本化工作空间之前,看不到提交的结果。

只有在完成协调操作后未对目标版本做出任何修改时,才能完成提交操作。如果在此期间修改了目标版本,则必须在提交前重新进行协调。

提交操作无法撤消,因为对其应用更改的版本不是当前正在编辑的版本。

提交后,可在编辑会话中继续执行进一步编辑。要将这些更改应用到目标版本,必须再次执行协调、解决冲突和提交过程。

如果提交操作标志着项目结束或您所负责的部分工作流结束,则可删除已编辑的版本。可以删除一个版本,前提是您是该版本的所有者,并且事先删除了该版本的所有子版本。

至此,简单了解了有关ArcGIS实现版本编辑的流程,包括编辑、协调、查看和解决冲突、提交更改。在后续开发过程中尽量模仿ArcGIS实现的方式。

ArcGIS 10——版本编辑流程的更多相关文章

  1. arcgis 10 版本连接SDE数据库报错:No ArcSDE server license found 最有效的解决方法

    这个问题可以这样解决:就在在Oracle中登入SDE数据库 进入到SDE数据库中后,找到表SERVER_CONFIG,其中有一行数据记录的就是我们需要进行修改的数据 你需要做的就是找到一个可用的,前面 ...

  2. ARCGIS 10.0破解版安装过程error 1606 和error 1316问题 及安装流程

    来自:http://blog.csdn.net/don_lvsml/article/details/8681100 楼主今天安装ESRI.ArcGIS.10.CS时,由于第一次接触该软件,将其按照一般 ...

  3. ArcGIS 10.3 AddIN编译旧版本项目问题

    ArcGIS 10.1的AddIN项目,后来ArcGIS版本升级为10.3 AddIN项目想做一些细节调整,结果出生成时没有生成esriaddin文件,ArcMap中AddIn Manager中也没有 ...

  4. ArcGIS 10.5,打造智能的Web GIS平台

    2017年新年来临之际,ArcGIS 10.5正式发布.历经几个版本,ArcGIS 10.5已经革新为一个智能的以Web为中心的地理平台,推出更精细的分级授权.全新的i3S三维标准.大数据分析处理产品 ...

  5. sketchup 与 ArcGIS 10 的交互(转)

    来自:http://blog.csdn.net/kikitamoon/article/details/9036347 许多用户在 ArcGIS 9.2 时代习惯于使用 Sketchup 插件,但是,9 ...

  6. ArcGIS 10.5 新功能

    ArcGIS 10.5正式发布,打造智能的Web GIS平台 2017年新年来临之际,ArcGIS 10.5正式发布. 历经几个版本,ArcGIS10.5已经革新为一个智能的以Web为中心的地理平台, ...

  7. 【转】10.4新特性-ArcGIS 10.4矢量切片介绍

    原文地址:http://zhihu.esrichina.com.cn/article/567 1.矢量切片简介GIS的底图一直使用金字塔技术进行切图,使用户能够快速访问指定级别的地图或者影像.但是切图 ...

  8. 【ArcGIS 10.2新特性】Geodatabase 10.2 常见问题

    地理数据库技术一直以来都是ArcGIS的基础技术.为充分使用ArcGIS的全部功能则需要把数据存储在Geodatabase当中.Geodatabase是一个综合性的信息模型,它可以支持存储几乎任意类型 ...

  9. 【ArcGIS 10.2新特性】地理数据(Geodatabase 和database)10.2 新特性

    1. 大数据支持 ArcGIS与Hadoop集成,将提供一个开源的工具包用于大数据的空间分析,开发者将通过该工具包构建定制化的工作流并在ArcGIS当中执行.         支持更多的大数据平台数据 ...

随机推荐

  1. Dockerfile的一些demo

    tomcat7.0_jdk1.6 #继承用户创建的sshd镜像FROM yatho:sshd_ubuntu #创建者的基本信息 MAINTAINER yatho (yat_ho@163.com) #设 ...

  2. Android 简单计算器实现源码

    1.string.xml代码 <?xml version="1.0" encoding="utf-8"?> <resources> &l ...

  3. 危险的浮点数float

    今天写程序又以为我见鬼了!最后查出来发现原来又是浮点数搞的鬼! 情况大致是这样的,我想要测试向量运算的速度,所以要对一个浮点数向量进行求和运算,代码如下: int vect_size=10000000 ...

  4. iOS - 开源框架、项目和学习资料汇总(其他篇)

    数据库 1. FMDB – sqlite的工具, 多线程FMDatabaseQueue实例,FMDB数据库的使用演示和封装工具类.GXDatabaseUtils – 在FMDB基础上的工具.2. re ...

  5. html 自动弹出框

    1.点击div外部隐藏, //*代表tip_box所包含的子元素 $('body').click(function(e) { var target = $(e.target); if(!target. ...

  6. flex常用快捷键

    先插入一条广告,博主新开了一家淘宝店,经营自己纯手工做的发饰,新店开业,只为信誉!需要的亲们可以光顾一下!谢谢大家的支持!店名: 小鱼尼莫手工饰品店经营: 发饰.头花.发夹.耳环等(手工制作)网店: ...

  7. POJ--1699 Best Sequence(DP+dfs)

    Best Sequence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5543 Accepted: 2188 Descrip ...

  8. CCCC L2-002. 链表去重

    https://www.patest.cn/contests/gplt/L2-002 模拟一个链表的去重操作 题解:别模拟了,直接用内置的list和map.关于输出的地址,直接用pair存地址和值,输 ...

  9. iOS钱包卡券开发(往钱包里面加自己的卡券)

    参考文章 https://blog.csdn.net/sz_vcp2007/article/details/60762349 https://blog.csdn.net/eqera/article/d ...

  10. 洛谷P4437 排列 [HNOI/AHOI2018] 贪心

    正解:贪心 解题报告: 传送门! 发现做题龟速,,,所以懒得写题目大意辣自己get一下QAQ 首先看到ai<=n,又当ai=j时j在i的前面,所以就变成对于每个点i有一个约束,即要求第ai个节点 ...