Введение в просмотр конфликтов

Эта тема относится только к ArcGIS for Desktop Standard и ArcGIS for Desktop Advanced.

ArcGIS обнаруживает конфликты при согласовании версии, которую вы редактируете, с целевой версией. Конфликты возникают в следующих случаях:

Если возникнут какие-либо конфликты, то ArcGIS будет разрешать их в пользу редактируемой версии или в пользу представления целевой версии, в зависимости от ваших настроек. Как только конфликты будут разрешены, вы сможете произвести их поочередный обзор и при необходимости внести любые изменения. Например, если конфликт будет разрешен в пользу редактируемой версии, то вы сможете выбрать опцию замены объекта в пользу целевой версии или даже использовать инструменты редактирования для его изменения нужным образом.

Интерактивное разрешение конфликтов

Если при согласовании обнаруживаются конфликты, их можно просмотреть с помощью интерактивного диалогового окна Конфликты (Conflicts). В этом окне содержатся все конфликтующие классы объектов, а также их объекты и строки, которые находятся в конфликте. В этом окне также можно сделать следующее:

Определение, какие поля или строки конфликтуют

Все конфликтующие классы и объекты перечислены в списке в верхней левой части диалогового окна Конфликты (Conflicts). В данном списке перечислены конфликты (Conflicts), в котором указывается общее количество конфликтов, обзор которых был произведен, а также общее количество конфликтов в классах пространственных объектов. В примере ниже указан перечень Конфликты (Conflicts): В примере ниже имеется два конфликтующих объекта, и ни один из них не был просмотрен.

Conflicts (2/2)

В списке Конфликты (Conflicts) указаны классы объектов, содержащие конфликты. Рядом с ними значится число конфликтов в классе объектов, которые вы просмотрели или заменили, а также общее количество конфликтов в классе объектов. В этом примере конфликты имеются в двух классах объектов, по одному в каждом из них:

Conflicts (2/2)
   sde.RJP.ponds (1/1)
   sde.RJP.lakes (1/1)

Под каждым из классов пространственных объектов перечислены идентификаторы ObjectID конфликтующих объектов. В данном примере имеется конфликт для объекта ObjectID 30 в классе объектов пруды (ponds) и конфликт для объекта ObjectID 11 в классе объектов озера (lakes).

Conflicts (2/2)
   sde.RJP.ponds (1/1)
        30
   sde.RJP.lakes (1/1)
        11

Вы можете заметить, что ни один из этих объектов не был просмотрен или замещен, потому что отношение между общим количеством конфликтующих объектов (1/1) и количеством просмотренных конфликтов (2/2) остается одинаковым для каждого из классов пространственных объектов. Вы также можете сказать о том, что ни один из конфликтов не был просмотрен или заменен, потому что все идентификаторы объектов (object ID) и классы пространственных объектов выделены жирным шрифтом.

Когда вы помечаете объекты как просмотренные (см. раздел «Отметить как просмотренный или как не просмотренный» (Mark as visited or mark as not visited) ниже) или замещаете объекты (см. раздел «Разрешение конфликтов» (Resolving conflicts) ниже), первое число в скобках уменьшается, а просмотренный объект ObjectID перестает выделяться утолщенным шрифтом. Если все идентификаторы объектов (Object ID) в классе объектов были отмечены как просмотренные или замещенные, то имя класса объектов больше не будет выделяться жирным шрифтом. Если в примере с прудами и озерами отметить объект с ObjectID 30 как просмотренный, в списке диалогового окна Конфликты (Conflicts) отобразится следующее:

Conflicts (1/2)

   sde.RJP.ponds (0/1)  
        30      

   sde.RJP.lakes (1/1)
        11

Если бы в ponds был второй конфликтный объект, то список мог бы выглядеть так:

Conflicts (2/3)

   sde.RJP.ponds (1/2)
        5  
        30    

   sde.RJP.lakes (1/1)
        11

Этот список означает, что в результате операции согласования выявлено три конфликта, а один из них просмотрен или замещен. В списке также указывается, что идентификатором конфликтного объекта (object ID), который был просмотрен или заменен, является 30, а также то, что этот объект содержится в классе пространственных объектов ponds.

Когда вы выделяете отдельный объект в этом списке, то в правой части от списка диалогового окна Конфликты (Conflicts) появляются столбцы и их атрибуты в версии до согласования, конфликтной версии и версии общего "предка" этого объекта.

  • Версия до согласования представляет пространственный объект и изменения атрибутов, которые вы произвели.
  • Конфликтная версия представляет объект и его атрибуты, как они были отредактированы и согласованы другим пользователем.
  • Версия общего предка содержит представление пространственного объекта и его атрибутов, как они хранятся в базе данных; такими были объект и атрибуты до произведения изменений.

Красная точка слева от имени поля означает наличие конфликта. Например, если геометрия редактировалась в каждой версии, красная точка будет рядом с полем Shape.

Работа с диалоговым окном Конфликты (Conflicts)

Если конфликтовать будут еще какие-то атрибутивные поля, то красные точки будут отображены и с ними рядом. Если какой-то объект был удален в какой-то версии, то для значения атрибута этой версии появится надпись <deleted>.

Когда у вас имеются атрибуты и их значения для всех представлений конфликтного объекта, то вы можете видеть, как атрибутивные значения отличаются между версиями.Это может помочь вам выбрать, какое представление данных вам нужно сохранить.

Просмотр конфликтов

Если в этом диалоговом окне вы нажмете кнопку Показать конфликты (Conflict Display), то в его нижней части будут отображены два представления конфликтующих объектов — версия до согласования и конфликтная версия.

Работа с диалоговым окном Отображение конфликтов (Conflict Display)

С помощью ниспадающих списков, имеющихся под каждым представлением, можно переключаться между тремя различными представлениями конфликтующих объектов: версией до согласования, конфликтной версией и версией общего "предка". Обратите внимание на то, что эти объекты будут отличаться внешне, только если конфликтуют их геометрии.

Под каждым представлением есть панель инструментов, которую можно использовать для навигации и идентификации соответствующего представления.

Можно приблизить изображение конфликтного объекта на карте в какой-то определенной версии. Для этого в списке объектов щелкните его правой кнопкой мыши, а затем выберите Приблизить к версии до согласования (Zoom To Pre-Reconcile Version), Приблизить к конфликтной версии (Zoom To Conflict Version) или Приблизить к версии общего "предка" (Zoom To Common Ancestor Version).

Если имеются конфликты геометрии, вы также можете увидеть разные представления на карте, щелкнув правой кнопкой на поле Форма (Shape) в списке и выбрав Показать (Display).

Приближение к конфликтующему объекту

Откроется диалоговое окно Установки отображения конфликтов (Conflict Display Settings). Щелкните на представлении, которое вы хотите отобразить на карте.

Выбор установок отображения конфликта

Нажатие на кнопку OK приведет к следующим изменениям на карте:

  • Представление конфликтной (целевой) версии отображается красным цветом.
  • Представление версии до согласования отображается зеленым цветом.
  • Представление версии общего "предка" отображается синим цветом.

Если бы вы включили в окне Установки отображения конфликтов (показаны на рисунке выше) такие опции, то смогли бы увидеть на карте такое изображение:

Отображение версий конфликта

Если в диалоговом окне Установки отображения конфликтов (Conflict Display Settings) отмечена только опция Отображать текущую версию (Draw current version), на карте вы увидите примерно такую картину:

Отображение текущей версии

После того, как вы просмотрите конфликты, вы сможете отметить их как просмотренные или выбрать опцию замещения, чтобы разрешить конфликт.

Отметить как просмотренный или как не просмотренный (Mark as visited or mark as not visited)

Как упоминалось в разделе "Определение, какие поля или строки конфликтуют", вы можете пометить пространственный объект как просмотренный. Это значит, что вы видели конфликт, но сейчас не хотите выбирать опцию замещения. Вы также можете вести учет того, какие объекты в этом списке были просмотрены:отмеченные как просмотренные объекты больше не отображаются жирной границей.

Если вы решили вернуться к конфликтующему объекту позднее, щелкните правой кнопкой мыши на идентификаторе объекта (ObjectID) в списке Конфликты (Conflicts), а затем нажмите Отметить как не просмотренный (Mark as not Visited). После этого объект снова будет выделен жирной границей.

Разрешение конфликтов

При устранении конфликтов вы решаете, какое представление пространственных объектов или атрибутов следует оставить. Независимо от того, выполняется согласование в пользу целевой или редактируемой версии, можно указать, какое представление следует сохранить: представление версии до согласования (отображение в версии до согласования), представление конфликтной версии (отображение с учетом изменений, внесенных другим редактором) или представление общего "предка" (отображение объекта или атрибута в целевой версии).

При разрешении конфликтов можно использовать пять вариантов замещения:

  • Замещение атрибутов

    Это происходит на уровне поля. При наличии конфликтов в атрибутах достаточно заменить значение атрибута в текущей версии значением из представления версии до согласования, конфликтующей версии или версии общего "предка". Для этого щелкните правой кнопкой мыши атрибут в конфликте и выберите в меню необходимую опцию.

  • Замещение пространственных объектов

    Это происходит на уровне строки. Можно заменить весь объект представлением объекта в версии до согласования, конфликтующей версии или версии общего "предка". Это значит, что все поля в конфликте будут заменены.

  • Замещение на уровне классов

    Чтобы разрешить конфликт, можно заменить текущее представление всего класса объектов представлением объекта в версии до согласования, конфликтующей версии или версии общего "предка". Это приведет к одновременной замене всех конфликтующих объектов и атрибутов и позволит быстро обновить и заменить конфликтующие объекты. Если в списке Конфликты (Conflicts) присутствует несколько объектов, все они заменяются выбранной версией.

    Чтобы выбрать опцию замены на уровне класса, щелкните правой кнопкой мыши по имени класса объектов в списке Конфликты (Conflicts) и выберите необходимую версию.

  • Полное замещение

    Это замещение на уровне корня. Вследствие использования данной опции замещения все конфликтные объекты и классы объектов в списке заменяются выбранным представлением. При наличии нескольких классов объектов и нескольких объектов в конфликте все они заменяются выбранной версией.

    Щелкните правой кнопкой мыши по имени класса в списке Конфликты (Conflicts) и выберите версию, в которой необходимо заменить все конфликты.

  • Слияние геометрии

    Происходит на уровне полей и специально связано с атрибутом Shape. Опция слияния геометрии доступна там, где конфликт затрагивает поле Shape. Если два редактора редактируют геометрию одного и того же пространственного объекта, но в разных частях этого объекта, у них есть опция слияния геометрии, чтобы принять обе редакторские правки.

    Два изменения одного объекта в разных местоположениях
    Опция слияния геометрии доступна только из контекстного меню поля Shape.
    Слияние геометрии
    После слияния геометрии в полученный пространственный объект будут внесены правки обоих редакторов:
    Измененный обоими редакторами объект
    Если правки одного редактора охватывают область, уже отредактированную другим редактором, их области редактирования будут перекрываться. Хотя слияние геометрии может быть опцией, попытка это сделать будет неудачной. Если это произошло, появляется следующее сообщение об ошибке:

    "При слиянии геометрии произошла ошибка. Слияние геометрии невозможно. Редактируемые участки пересекаются."

Конфликты в геометрических сетях

При редактировании сетевых объектов конфликты могут вызвать изменения геометрической или логической сети.

Например, при добавлении точки обслуживания к линии сети (main), линия сети (main) не будет в геометрической сети разделена физически, но будет разделена в логической сети. Следовательно, пока вы не отредактируете геометрию линии сети (main) напрямую, она будет редактироваться на логическом уровне. Если в целевой версии, которую вы согласуете, также будет изменена линия сети (main), то новая точка обслуживания, которую вы вставите, образует конфликт с линией сети.

Обзор конфликтов, создаваемых в классах пространственных объектов геометрических сетей, требует понимания того, каким образом существующая топология сети, представленная в сессии редактирования, будет обновлена при использовании команды Заменить на (Replace With) диалогового окна Конфликты (Conflicts).

В примере водопроводной сети два пользователя изменили водопроводную магистраль — один путем добавления атрибута, а другой путем подключения новой точки обслуживания. При просмотре конфликта надо понять, что изменилось, и посмотреть, не требуется ли для разрешения конфликта предпринимать дальнейшие действия. Поскольку линия водопровода содержит корректное значение атрибута для диаметра, то новая точка обслуживания будет корректно подсоединена к водопроводу. Но бывают случаи, когда при разрешении конфликтов привлекается соединяющий класс пространственных объектов, который также обновляет рёбра соединенной сети.

Конфликты в объектно-связанных аннотациях

При работе со связанными с объектами аннотациями вам нужно запомнить одно правило: при замещении объекта, у которого есть аннотация, связанная с объектом, новый объект и аннотация заменят и объект, и его аннотацию. Поэтому вам лучше продолжить редактирование новой аннотации, чтобы избежать появления двух аннотаций.

Например, вы можете столкнуться с конфликтом при перемещении объекта и смещении его аннотации. В конфликтной версии были произведены такие же изменения:объект был перемещен, а аннотация повернута. Если вы решите заменить этот объект объектом конфликтной версии, то существующая связанная с объектом аннотация будет удалена, будет вставлен конфликтный объект, и будет создана новая аннотации. После этого вам будет нужно отредактировать новую аннотацию, переместив и повернув ее, как вам надо.

Вы также можете столкнуться с конфликтом, когда другой редактор удалил какой-то объект в версии DEFAULT базы геоданных, в результате чего связанная с ним аннотация также была удалена. В дочерней версии базы геоданных вы отредактируете аннотацию, которая только что была удалена. Если при согласовании вы решаете заменить объект объектом из версии редактирования, то тот объект, который был удален из версии DEFAULT, будет замещен объектом вместе с аннотацией из версии редактирования, и у вас получится две аннотации для одного объекта.

Конфликты в отношениях

В отношениях имеются зависимости, которые схожи с зависимостями связанных с объектами аннотаций. Удаление объекта из класса отношений объектов-источников (origin relationship class) может вызвать отправку сообщения на удаление объекта из класса отношений объектов-адресатов (destination relationship class). Поэтому вам следует учитывать возможные последствия простой замены конфликтов, возникающих в классах пространственных объектов, участвующих в классах отношений.

Приведем пример того, когда между классами отношений может возникнуть конфликт:

Другой пример:

Если второй пользователь выбрал бы опцию замены всех конфликтов с использованием представлений редактируемой версии, то столб и трансформатор, удаленные в течение вашей сессии редактирования были бы созданы заново.Помимо этого был бы создан трансформатор из сессии второго редактора, что привело бы к появлению двух трансформаторов. Вы не смогли бы обнаружить этого на карте, потому что они были бы расположены друг на друге; однако в атрибутивной таблице вы бы могли увидеть две разные строки для объектов трансформаторов.

Конфликты в топологиях

Поскольку объекты в классах пространственных объектов, которые участвуют в топологии, могут разделять отдельные элементы своей геометрии с другими объектами, процесс обзора конфликтов между версиями классов пространственных объектов, образующих топологию, отличается от процесса замены конфликтов при работе с простыми классами пространственных объектов. Он также отличается от процесса, используемого для замещения конфликтов в геометрических сетях, классах отношений и связанных с объектами аннотаций.

Когда класс пространственных объектов участвует в редактируемой топологии, другие топологически связанные объекты могут быть одновременно изменены. Изменяемые объекты могут принадлежать к тому же самому классу пространственных объектов или к одному или нескольким другим классам пространственных объектов. Для управления процессом обнаружения новых топологических ошибок, появившихся при внесении изменений, в топологиях производится запись областей, где были произведены изменения, в виде измененных областей. Редактирование объектов в топологии производит в топологии создание измененных областей.

Новые топологические ошибки могут возникать при согласовании редактируемых родительских и дочерних версий, даже когда измененные области (dirty area) в рамках каждой версии были проверены и в них нет ошибок. Для обнаружения таких топологических ошибок в дочерних версиях происходит перевод всех измененных областей в состояние изменения. Это производится после того, как изменения из родительской версии переносятся в дочернюю в процессе согласования. После согласования эти области могут быть проверены еще раз, и все ошибки будут обнаружены.

Согласование двух версий, которые не содержат активных измененных областей (dirty area), может привести к тому, что измененные области все равно останутся. Любая область, представленная в дочерней версии, независимо от того, была она проверена или нет, станет измененной областью после согласования версий. В общем, при согласовании версии верно следующее:

Конфликты в наборе сетевых данных

Редактирование класса объектов, который участвует в наборе сетевых данных, может изменить связность, т. е. то, как элементы сети связываются между собой. (Элементами сети могут быть улицы, путепроводы и т. д.) Более того, в наборе сетевых данных могут участвовать несколько классов объектов. Поэтому редактирование одного исходного класса объектов может изменить связность элементов сети, созданных из других исходных классов объектов.

Поскольку в наборе сетевых данных могут участвовать несколько классов объектов, а связность частично основывается на геометрических отношениях, процесс просмотра конфликтов в наборах сетевых данных очень похож на аналогичный процесс для топологий. Четким индикатором этого является то, что наборы сетевых данных также используют измененные области, но они используются для управления процессом обнаружения изменений связности, а не ошибок топологии.

Более подробно о редактировании наборов сетевых данных

Связанные темы

9/11/2013