Skip to main content

冲突预防

需具备位置参考许可方可使用。

冲突预防通过在企业级地理数据库线性参考系统 (LRS) 中协调路径和事件编辑内容来改进对多用户编辑的支持。 ArcGIS Location Referencing 通过强制使用一组条件和行为来协调编辑内容,这些条件和行为要求编辑者在编辑路径或事件之前获得锁。

如果路径或事件被某个版本中的编辑者锁定以进行编辑,则该路径或事件不能在另一个版本中由同一位用户或在任何版本中由其他人进行编辑。 这是位置参考冲突预防的主要原则。

启动冲突预防

冲突预防仅在注册为分支版本化的 LRS 数据集上受支持。

将数据集注册为分支版本化后,请运行修改 LRS 工具,其中冲突预防参数设置为启用

已启用“冲突预防”的“修改 LRS”工具

如果启用冲突预防,则每个编辑工具都会自动获取锁(如果锁可用),或者在无法获取锁时提醒您。

编辑路径并针对冲突预防创建锁

以下冲突预防工作流示例使用“停用路径”工具。 RouteXL、Route 和 RouteS 是 LineXYZ 的一部分。 RouteX 将停用。

冲突预防和路径停用

路径是 LineXYZ 的一部分。
  1. 位置参考选项卡的工具组中,单击识别路径 ,然后单击 RouteX

    随即显示识别路径弹出窗口。

    “识别路径”弹出窗口

    “识别路径”弹出窗口显示不存在锁。
  2. 确认所选路径或线路上不存在任何锁。

    之前的示例显示 RouteX 不存在锁。

  3. 位置参考选项卡的路径组中,单击停用

    停用路径窗格随即出现。

  4. 单击从地图中选择路径 ,然后单击要停用的路径。

    选择路径名称后,窗格顶部随即显示一条获取锁消息。

    已获取锁的“停用路径”窗格

    将在“停用路径”窗格中确认获取的路径。

    锁定消息提供了以下信息:

    • 已在 LineXYZ 上获取锁。

      注:

      RouteX 是 LineXYZ 的一部分。

      由于 RouteY 和 RouteZ 是 LineXYZ 的一部分,因此也会对其进行编辑锁定。

    • 门户用户 User11 已获取锁。

    • User11 已获取命名版本 Version1 的 LineXYZ 锁。

    注:

    如果满足以下所有条件,您会自动将现有路径或线路锁从其他人员转移给您自己:

    • 其他人拥有的版本为公共版本。

    • 您正在其他人拥有锁的相同版本中发出请求。

    • 如果锁版本为命名版本,则锁所有者当前未在该版本中打开编辑会话。 如果锁版本为默认版本,则锁所有者当前未在默认版本中打开读取会话。

  5. 要确保锁存在,请单击识别路径 ,然后再次单击 RouteX

    包含“LRS 锁”部分的“识别路径”弹出窗口

    “识别路径”弹出窗口显示路径已锁定。

    被您锁定图标 也确认您拥有已标识路径的锁,并且可以编辑该路径。

  6. (可选)在位置参考选项卡的冲突预防组中,使用 LRS 锁按钮 识别现有锁。

    LRS 锁表随即出现。

    “LRS 锁”表

    “锁”表显示了存在最近获取的锁。

冲突预防消息

如前所述,冲突预防逻辑允许一次仅由一个人在单个版本中编辑路径或线路以及事件。

例如,如果 User22 尝试在 User11 已锁定 RouteX 的情况下停用 RouteX,则会出现以下消息:

未获取锁的“停用路径”窗格

当 User11 拥有锁时,User22 无法编辑路径。

该消息提供了以下信息:

  • 由于锁属于其他人,因此无法编辑 LineXYZ。

    注:

    RouteX 是 LineXYZ 的一部分。

  • 门户用户 User11 已获取锁。

  • User11 已获取命名版本 Version1 的 LineXYZ 锁。

“识别路径”弹出窗口显示以下结果:

包含现有锁的“识别路径”弹出窗口

由于现有锁,该路径无法编辑。

LRS 锁表随即出现。

“LRS 锁”表

列出了锁的“LRS 锁”表。

确保编辑的是数据集的最新版本

编辑最新版本,以便对数据进行的所有最新更改都存在于正在编辑的版本中。 要确认您是否正在编辑最新版本,位置参考将在获取锁之前,检查是否需要与默认版本进行协调。 当需要将某个命名版本与默认版本进行协调时,将显示以下消息:

“获取锁”对话框

与默认版本进行协调。

获取锁对话框上单击时,将指定版本与默认版本进行协调。

注:

在编辑路径或事件之前,确保协调与默认版本的任何冲突。

了解有关协调并发布对分支版本的编辑内容、解决冲突以及发布更改的详细信息

可以在获取锁之前自动进行协调。 启用自动协调后,无需协调即可获取锁,除非在协调期间检测到冲突。

编辑路径时的整体冲突预防逻辑如下图所示:

冲突预防流程图

锁类型

位置参考中的冲突预防具有以下类型的锁:

  • 路径锁和线路锁

  • 事件锁

路径锁和线路锁

在编辑路径时,路径锁和线路锁可以防止其他人编辑路径以及该路径上的事件。

路径锁和线路锁具有以下属性:

  • 当编辑连续网络中的路径时,锁称为路径锁。

  • 当编辑支持线路的工程网络中的路径时,将获取线路锁。 整条线路及其所有路径均已锁定。 线路锁意味着如果一个人正在编辑组成线路的多条路径之一,则其他任何人都无法编辑该线路上的任何其他路径。

  • 锁定路径意味着仅拥有锁的人能够在已获取锁的版本中编辑路径及其事件,除非满足锁传输条件。

事件锁

事件锁可防止其他人编辑特定路径的事件图层。 为路径或线路的事件图层获取事件锁。

如果 User1 在 Version1 中为 Route1 锁定了 Event Layer1,则适用以下情况:

  • 在任何版本中,其他人都无法编辑 Route1 的 Event Layer1。

  • User1 无法在除了 Version1 之外的任何其他版本中编辑 Route1 的 Event Layer1。

  • 如果该路径不存在路径锁,则其他人可以在 Route1 或任何其他路径的其他事件图层(Event Layer1 除外)上获取锁。

  • 如果多人拥有该路径的事件锁,则任何人都无法获取路径锁。

  • 其他人可以在 Event Layer1 上为任何其他可以获取锁的路径获取锁。

  • 如果编辑注册到网络的事件(点或线),且该网络支持线,则将在线上获取事件锁。

  • 如果编辑注册到网络的事件(点或线),该网络不支持线路,则将在路径上获取事件锁。

注:
  • 如果路径或事件存在多个时间片,则获取的锁对所有时间片均有效。

  • 地理处理工具将根据需要获取锁。

路径上存在事件时的冲突预防逻辑如下图所示:

路径上事件的冲突预防

中心线编辑过程中的冲突预防

在存在并发路径的情况下,会根据公共中心线锁定路径。 下图演示了此概念:

冲突预防和中心线编辑

显示了锁定并发路径。
  • 如果编辑路径 X,则会在路径 X 上获取锁,并且其他任何人都无法在路径 Y 上获取锁,因为其共享公共中心线 C2。

  • 如果编辑路径 Y,则会在路径 Y 上获取锁,并且其他任何人都无法在路径 X 上获取锁,因为其共享公共中心线 C2。

  • 如果编辑中心线 C1(制图重新对齐或分割中心线),则仅锁定路径 X。

  • 如果编辑中心线 C3,则仅锁定路径 Y。

  • 如果编辑中心线 C2,则将同时锁定路径 X 和路径 Y,因为 C2 是这两条路径之间的共享中心线。

释放锁

在以下情况下,将会自动释放锁:

  • 将包含锁的版本发布到默认版本。

  • 删除包含锁的版本。

  • 由于使用路径编辑、中心线编辑或地理处理工具而在默认版本中获取的锁将在运行完成后释放。

可以根据锁的可释放状态手动释放锁。

如果可释放状态值为 Yes,则可以通过执行以下任一操作来释放锁:

  • 单击位置参考选项卡上的释放锁按钮

  • 单击 LRS 锁表中的释放锁按钮

如果可释放状态值为 No,则无法释放锁。

如果可释放状态值为 On Post,则仅在发布到默认版本后,才能释放锁。

注:

如果满足以下所有条件,您会自动将现有路径锁从其他人员转移给您自己:

  • 其他人拥有的版本为公共版本。

  • 您正在其他人拥有锁的相同版本中发出请求。

  • 如果锁版本为命名版本,则锁所有者当前未在该版本中打开编辑会话。 如果锁版本为默认版本,则锁所有者当前未在默认版本中打开读取会话。

冲突预防规则摘要

启用冲突预防后,在以下情况下,可以在路径上获取锁后,对该路径进行编辑:

  • 在任何版本中,任何人都无法在该路径上获取锁。

  • 同一用户已对同一版本中存在的路径应用路径锁。

启用冲突预防后,如果不满足提供的锁传输条件,则无法在以下情况下编辑路径:

  • 与默认版本的协调尚未完成。

  • 当前版本中存在地理数据库冲突。

  • 其他人已锁定该路径。

  • 同一用户已对其他版本中的路径应用路径锁。

  • 其他人在该路径上拥有事件锁(前提是不满足锁传输条件)。

  • 同一用户在其他版本中对该路径应用路径锁。

启用冲突预防后,在以下情况下,可以在事件图层上获取锁,然后对该事件进行编辑:

  • 在任何版本中,对于事件所在的路径,任何人在该事件图层上都没有锁(前提是不满足锁传输条件)。

  • 同一个人在其当前工作的相同版本中已拥有事件锁(对于事件所在的路径)。

  • 同一个人在相同版本中已拥有路径或线路锁(对于事件所在的路径或线路)。

启用冲突预防后,在以下情况下,将无法编辑事件:

  • 与默认版本的协调尚未完成。

  • 当前版本中存在地理数据库冲突。

  • 对于事件所在的路径,其他人已锁定事件图层(前提是不满足锁传输条件)。

  • 对于事件所在的路径,同一个人已锁定事件图层,但在不同的版本中。

  • 其他人已锁定事件所在的路径(前提是不满足锁传输条件)。

  • 同一个人已锁定事件所在的路径,但在不同的版本中。