Схемы сети могут быть неудобными для чтения, когда интервалы между объектами схемы слишком малы или слишком велики для отображения символов и подписей в желаемом масштабе. Для нормализации интервалов между объектами в схемах сети могут применяться компоновки.
Типы компоновок схем
Существуют различные алгоритмы компоновки схем для размещения содержания схемы сети.
Есть четыре категории компоновок: дерево, доработка, схемы и другие.
Компоновки-деревья
Компоновки-деревья иерархически организуют объекты схемы, показывая их виде структуры дерева. Ниже приведены примеры таки компоновок:
- Компоновка Дерево главной линии
Этот алгоритм компоновки иерархически упорядочивает ребра и соединения входной схемы сети вдоль основной линии и размещает ее связанные ветви или с обеих сторон, или с левой, или с правой стороны от основной линии.
- Компоновка Радиальное дерево
Этот алгоритм компоновки иерархически упорядочивает объекты схемы и размещает их в радиальном дереве в соответствии с заданными параметрами радиуса. Он работает от корневого соединения, которое используется как центр окружности для организации поддеревьев, начинающихся из этого корня, в концентрических окружностях, каждая из которых соответствует одному иерархическому уровню.
- Компоновка Развитое дерево
Этот алгоритм компоновки иерархически упорядочивает объекты схемы и размещает их в развитое дерево в соответствии с указанными направлением и разделяющими расстояниями.
Компоновки доработки
Компоновки доработки включают следующие три компоновки схем, которые дорабатывают ребра схем:
- Компоновка Направленный по углам
Данный алгоритм компоновки постепенно перемещает ребра схемы в заданных направлениях. Для каждого ребра схемы алгоритм рассматривает его текущее направление, осуществляет поиск ближайшего желаемого направления из заданных и перемещает ребро в этом направлении.
- Компоновка Частично перекрывающиеся ребра
Данный алгоритм компоновки обнаруживает наборы коллинеарных ребер или коллинеарных частей ребер (сегментов ребер), которые можно рассматривать, как размещенные внутри буферной зоны заданного размера.
- Компоновка Изменить ребра схемы
Эта компоновка применяется для выполнения простых операций с вершинами вдоль ребер в схемах сети. Она позволяет вам делать следующее:
- Удалить все вершины вдоль ребер схемы.
- Сократить некоторые вершины вдоль ребер схемы.
- Сделать прямоугольными ребра схемы и добавить вершины на ребрах.
- Разделить пересекающиеся ребра схемы.
- Обнаружить ребра схемы, которые пересекаются под прямым углом, и изменить их геометрию для отображения дуги в местах пересечения.
Компоновки-схемы
Компоновки-схемы включают несколько типов компоновок. Большинство из них позволяют разделять визуально близко расположенные объекты схемы, по возможности сохраняя положение этих объектов, например, Сетка, Линейное распределение, Пространственное распределение и Направленная сила. Две других, Повернуть дерево и Сжатие, используются для оптимизации пространства в схеме.
- Компоновка Сжатие
Данный алгоритм компоновки сжимает объекты схемы в направлении к середине схемы, одновременно пытаясь сохранить относительное расположение. Он работает с расстоянием, позволяющим строить группы соединений, которые перемещаются как супер узлы в процессе выполнения алгоритма.
- Компоновка Направленная сила
Данный алгоритм компоновки использует физическое сходство для отображения схем, идентифицируя схему как систему сил, где он пытается минимизировать энергию этих сил. Он ведет поиск равновесного состояния системы – такого положения каждого соединения схемы, где сумма сил в каждом соединении равна нулю.
- Компоновка Сетка
Данный алгоритм размещает соединения схемы относительно магнитной сетки, размеры ячеек которой зафиксированы значениями параметров Ширина ячейки и Высота ячейки.
- Компоновка Линейное распределение
Данный алгоритм увеличивает промежутки между соединениями схемы, которые визуально расположены слишком близко, перекрываются или совпадают. Он перемещает соединения вдоль связанных с ними ребер. Перемещение вдоль ребер зависит от текущего и относительного положения соединений и параметров компоновки.
- Компоновка Основное кольцо
Алгоритм компоновки Основное кольцо располагает объекты схемы вокруг Основного кольца и иерархически компонует объекты, которые подключаются к соединениям, расположенным вокруг основного кольца.
- Компоновка Относительный - Главная линия
Эта компоновка упорядочивает объекты схемы сети в активной схеме вдоль параллельных прямых линий, при этом все связанные ребра имеют одинаковое значение атрибута. Она размещает ответвления от этих линий, сохраняя их направления относительно прямых линий, и расстояния пропорциональны начальной дистанции и связаны друг с другом.
- Компоновка Повернуть дерево
Данный алгоритм компоновки поворачивает дерево или деревья относительно поворотных соединений, заданных в текущий момент во входном слое схемы сети, в соответствии с указанным углом.
- Компоновка Пространственное распределение
Данный алгоритм компоновки поступательно разделяет соединения схемы, которые визуально почти перекрываются, в соответствии с их текущими положениями и указанным коэффициентом смещения.
Другие компоновки
В этой категории содержатся следующие специальные алгоритмы:
- Компоновки шаблона
Эта компоновку можно применять для повторного выполнения списка алгоритмов компоновок, настроенного в шаблоне в текущий момент, на основании которого создана входная схема сети. Этот инструмент используется, если схема была изменена, и вы хотите пересохранить компоновку в том виде, как она была построена.
- Компоновка Геоположения
Данный алгоритм компоновки перемещает каждый объект соединения схемы и ребра схемы для совпадения с географическим положением соответствующих сетевых объектов в виде карты.
Особенности компоновок схем
Алгоритмы компоновки схем выполняются с помощью инструментов геообработки. Каждая компоновка имеет свои собственные параметры, которые позволяют управлять расстоянием между объектами схемы, геометрией ребер, поддерживать положение объектов содержимого и так далее. Некоторые компоновки также учитывают флаги схем, которые могли быть размещены на схеме до их выполнения.
Применение компоновки схемы
Компоновки схем выполняются с помощью инструментов геообработки.
Есть два способа применения компоновки схемы:
- Вручную
Используйте этот метод, когда пользователь желает применить компоновку к существующей схеме сети, которая в данный момент отображается в виде карты-схемы. В таком случае, данная компоновка может применяться либо ко всему содержанию схемы сети, либо к ее части (то есть к поднабору выделенных объектов схемы).
- Автоматически при создании схемы.
Этот параметр задается в шаблоне схемы, поэтому любая схема на основе этого шаблона выкладывается в динамическом режиме. Эта компоновка всегда применяется ко всему содержанию схемы, которая построена на основе упомянутого шаблона. В этом случае на шаблоне могут быть построено несколько схем. Они привязываются в порядке и последовательности, в которых они были настроены в шаблоне. Компоновка Layout#1 работает на начальной геометрии объектов сети в схеме, а компоновка layout#N работает от геометрии, полученной в результате выполнения алгоритма algorithm#(N-1).
Параметры компоновки
Компоновка схемы работает согласно параметрам, которые являются уникальными для каждой из них.
Каждая компоновка имеет собственные значения по умолчанию для каждого параметра, который при необходимости можно изменить. При необходимости, эти значения можно задать в шаблоне заранее.
При загрузке инструмента алгоритма компоновки в панели Геообработка, он использует собственные значения параметров по умолчанию, за исключением случаев, когда входная схема сети, на которой будет выполняться эта компоновка, построена на базе шаблона, для которого был настроен этот алгоритм компоновки с другими значениями параметра по умолчанию.
При выполнении алгоритма компоновки на схеме с использованием скриптов Python, указывать каждое значение параметра алгоритма необязательно. Если значения параметров не указаны, компоновка будет работать либо с параметрами алгоритма по умолчанию, либо с теми значениями параметров, которые были настроены в базовом шаблоне входной схемы, когда этот алгоритм был добавлен в шаблон.
Запуск компоновок схемы в асинхронном режиме на сервере
По умолчанию все компоновки схем выполняются синхронно как на клиенте, так и на сервере. Однако, в зависимости от сложности алгоритма компоновки и времени ожидания, указанного для сервиса (600 секунд по умолчанию), некоторые компоновки могут превышать время ожидания сервиса и приводить к сбою операций. В этом случае может потребоваться асинхронное применение компоновок.
При применении компоновки схемы с включенной опцией Запуск в асинхронном режиме на сервере процесс остается синхронным на стороне клиента в отношении отредактированной схемы; то есть никакие другие операции не могут быть обработаны на этой схеме до завершения выполнения компоновки. Но процесс выполняется асинхронно на сервере путем выделения ресурсов сервера для запуска алгоритма компоновки с большим временем ожидания. Этот режим не позволяет клиенту блокировать другие операции по завершении асинхронной компоновки, что позволяет создавать или работать с другими схемами в течение этого времени.
Примечание:
Этот асинхронный режим работает только при использовании сервисов Инженерная сеть, опубликованных в ArcGIS Server 10.7.1 Enterprise.
Размещение объектов содержания
Большинство алгоритмов компоновки работают с определенной опцией, Сохранить контейнеры, что позволяет контролировать обработку объектов содержания алгоритмом. При использовании опции Сохранить контейнеры имейте в виду следующее:
- Когда эта опция включена, алгоритм компоновки выполняется в верхней части схемы и таким образом сохраняет относительное положение:
- Всех объектов, связанных со структурным соединением или сборкой устройства внутри его структурного устройства, или контейнером полигона схемы сборки.
- Всех объектов, связанных с линейным контейнером, вокруг его схемы линейного контейнера. Эти объекты отображаются вдоль этого линейного контейнера.
- При отключении этой опции, алгоритм компоновки обрабатывает как объекты содержания, так и все остальные объекты схемы.
Флаги и компоновки схем
Перед выполнением, некоторые компоновки прочитывают флаги, которые могут присутствовать в схеме. Существует четыре типа флагов схем, которые пользователь может установить в схеме: флаги корневого соединения, флаги конечного соединения, флаги поворотного узла и флаги барьеров.
Флаги корневого соединения
Алгоритмы компоновки дерева начинают обработку с определенных соединений, которые считаются корнями дерева. Когда схема состоит из отключенных частей сети, компоновки-деревья систематически выстраивают отключенные деревья, каждое из которых начинается с одного корневого соединения.
Флаги корневого соединения могут устанавливаться при создании схемы или при ее обновлении, когда шаблон, на котором эта схема построена, имеет настройки для выполнения правила Задать корневое соединение. Инструмент Задать корневое соединение может также использоваться для настройки соединений в качестве корневых, чтобы компоновки-деревья выполняли обработку из этих соединений.
Если корневые соединения в схемах не заданы, компоновки-деревья выберут нужное соединение случайным образом.
Во всех случаях компоновки-деревья размещают соединения в следующих местах:
- Компоновка Радиальное дерево размещает корневое соединение в центре круга и располагает поддеревья, начиная с этого корневого соединения, в концентрических кругах. Каждый круг соответствует одному иерархическому уровню.
- Компоновка Дерево главной линии выстраивает свою главную линию от заданного корневого соединения.
- Компоновка Развитое дерево начинает выстраивать свое дерево от указанного корневого соединения.
Если схема состоит из нескольких несвязанных графов или если имеется несколько корневых соединений, заданных в схеме, используются следующие положения:
- Компоновка Радиальное дерево размещает корневые соединения вокруг первого концентрического круга, центр которого является фиктивным.
- Компоновка Дерево главной линии и компоновка Развитое дерево выравнивают корневые соединения вдоль одной и той же оси перпендикулярно направлению дерева таким образом, что они выглядят как разные начальные точки для каждого несвязанного графа или для разных ветвей дерева этого графа.
Флаги конечного соединения
Для компоновки Дерево главной линии существует также понятие конечного соединения – последнее соединение на главных линиях.
Как и корневые соединения, эти конкретные соединения могут быть заданы с помощью инструмента Задать конечное соединение или определены самим алгоритмом. В последнем случае каждое конечное соединение будет являться последним соединением самой длинной ветви, начинающейся с корневого соединения; другими словами, самой длинной ветви, если учитывать количество ребер вдоль этой ветви.
Флаги поворотного узла и барьеров
Прежде чем применять компоновку Повернуть дерево, вы должны отметить флагом соединения, вокруг которого или которых будет выполняться этот поворот; для этого используется инструмент Задать поворотный узел. Кроме того, если вы хотите контролировать компоновку поворота и не допускать ее выхода за пределы определенных объектов схемы, может потребоваться установить флаги барьеров для этих объектов с помощью инструмента Задать барьеры.