Предварительное условие:
Перед тем, как приступить к настройке Сокращения узлов по приоритету (Node Reduction By Priority), необходимо убедиться, что узел класса объектов схемы, необходимый для выполнения правила, уже содержится в наборе схематических данных и связан с шаблоном схематического представления, в котором будет указано правило.
Перед дальнейшим изучением процесса настройки правила Сокращения узлов по приоритету (Node Reduction By Priority) следует ознакомиться с набором терминов, относящимся к этому правилу:
- Сокращенные узлы — это такие узлы, которые не будут графически отображаться в окончательной версии схемы.
- Целевые узлы – это такие узлы, которые были связаны с сокращенными узлами до их сокращения и используются для восстановления связей, которые были соединены с этими узлами, сохраняя топологию сети после сокращения.
- При сокращении узла со связями N (N - 1) создается соединение для связи с целевым узлом. Эти связи называют мостами. Связь, соединяющая сокращенный узел и целевой узел в создаваемой схеме, будет сокращена. Эта связь не отображается на схеме физически, но относящиеся к ней свойства отражаются в каждой из связей-мостов (N - 1).
Правило Сокращения узлов по приоритету (Reduction By Priority) позволяет создавать схематическое представление после того, как все или некоторые узлы данного класса объектов схемы, были удалены, а связи, которые были соединены с этими удаленными узлами, были восстановлены с целевым узлом, таким образом сохраняя топологию.
Сокращенные узлы — это узлы, принадлежащие определенному классу объектов схемы, которые не будут включены в окончательную версию схемы. Для сокращения можно выбирать либо все узлы, принадлежащие данному классу объектов схемы, либо только некоторые из них с помощью следующих фильтров:
- SQL-фильтра, который работает на существующем классе пространственных объектов/таблице объектов, относящихся к классу пространственных объектов узла;
- Ограничений по числу связей (то есть ограничений, основанных на числе соединений, связанных с этими узлами);
- Расширенных критериев, разработанных специально для того, чтобы определить, какие узлы должны быть сокращены;
- Любых выбранных атрибутов схемы, характерных для связей, соединенных с узлами, которые следует сократить, или полях, характерных для существующих классов объектов, относящихся к связям схематических классов объектов, соединенных с узлом, который будет сокращен.
Например, можно сократить:
- Узлы с двумя связями в указанном классе объектов схемы;
- Узлы с определенными значениями полей, относящиеся только к данному классу объектов схемы;
- Узлы, связи с которыми удовлетворяют только определенному значению свойства в соответствии с расширенным критерием;
- Узлы, у которых все связи обладают только одинаковыми указанными атрибутами существующих объектов, а эти атрибуты имеют одинаковые значения для всех связанных объектов;
- Узлы, удовлетворяющие всем четырем критериям одновременно.
В шагах ниже описывается настройка страницы Свойства правила сокращения узлов по приоритету (Node Reduction By Priority Rule Properties), которая отображается при нажатии кнопки Свойства правила (Rule Properties) на панели инструментов вкладки Правила (Rules) при условии, что такое правило сокращения узлов по приоритету уже добавлено к этой вкладке. Более подробную информацию о способах добавления новых элементов правил на вкладке Правила (Rules) и отображения страницы Свойства правила (Rule Properties) см. в разделе Задание правил схемы в шаблоне схематического представления (Specifying a schematic rule on a schematic diagram template).
Для правила Сокращения узлов по приоритету (Node Reduction By Priority), только что добавленного на вкладке Правила (Rules), при нажатии кнопки Свойства правила (Rule Properties) на панели инструментов вкладки Правила (Rules) открывается диалоговое окно Свойства правила (Rule Properties).
- Введите описание правила в поле Описание (Description).
Эта строка описания будет отображаться на вкладке Правила (Rules) для связанного элемента правила. Также она будет отображаться при создании и обновлении схематических представлений для уведомления пользователей о выполнении правила.
- Выберите имя класса узлов схемы для сокращения в раскрывающемся списке Выбрать класс узлов схемы (Select the node schematic feature class to reduce).
Этот раскрывающийся список содержит все классы узлов схемы, связанные с шаблоном схематического представления.
На первом шаге настройки правила предполагается сократить все узлы схемы, основанные на выбранном классе узлов схемы.
- Установите флажок поставлен флажок Сохранить вершины (Keep vertices), если необходимо, чтобы после сокращения узлов, вершины отображенные вдоль связей, соединяющих их с сокращенными узлами, были сохранены.
Если этот флажок установлен, на месте сокращенного узла отображается вершина.
- Чтобы указать SQL-фильтр для определенного класса узлов схемы и сократить только определенные узлы, необходимо:
- Нажмите кнопку Редактировать (Edit) в правой части панели SQL-фильтр класса связанных объектов (SQL Filter on associated feature/object class).
Откроется диалоговое окно SQL-запрос (SQL Query).
- Постройте нужный SQL-запрос.
Фильтр работает с полями класса пространственных объектов, которые относятся к указанному классу узлов пространственных объектов;
- Нажмите кнопку ОК.
Диалоговое окно SQL-запрос (SQL Query) закроется и введенный SQL-фильтр автоматически отобразится на панели SQL-фильтр класса связанных объектов (SQL Filter on associated feature/object class).
Указанный SQL-фильтр определит подмножество узлов схемы, которые необходимо сократить. Не соответствующие SQL-фильтру узлы при выполнении правила сокращены не будут.
- Нажмите кнопку Редактировать (Edit) в правой части панели SQL-фильтр класса связанных объектов (SQL Filter on associated feature/object class).
- В разделе Ограничения по числу связей сокращаемых узлов (Node connection constraints for reduction) укажите, надо ли удалять все отобранные узлы или только некоторые в зависимости от числа присоединенных связей:
- Если необходимо удалить все сокращаемые узлы, выберите пункт Без ограничений по соединениям (No connection constraint).
- Выберите пункт Ограничения соединений (Connection constraint), если необходимо удалить отобранные узлы в зависимости от числа соединений, то есть от числа присоединенных связей:
- Выберите пункт Сокращать узлы без соединений (Reduce nodes with 0 connections), если необходимо удалить узлы без присоединенных связей (выбрано по умолчанию).
- Выберите пункт Сокращать узлы с 1 соединением (Reduce nodes with 1 connection), если необходимо удалить узлы только с одной присоединенной связью (не выбрано по умолчанию).
- Выберите пункт Сокращать узлы с 2 соединениями (Reduce nodes with 2 connections), если необходимо удалить узлы только с двумя присоединенными связями (не выбрано по умолчанию).
- Выберите пункт Сокращать узлы с более чем 2 соединениями (Reduce nodes with > 2 connections), если необходимо удалить узлы с не менее, чем тремя присоединенными связями (не выбрано по умолчанию).
- При выборе узлов для сокращения можно также указать ограничения, основанные на атрибутах схемы, характерных для связей, соединенных с узлами, которые следует сократить, или полях, характерных для существующих классов объектов, относящихся к связям схематических классов объектов, соединенных с узлами, которые будут сокращены. Это ограничение должно быть указано в разделе Атрибут присоединенной связи (Connected link attribute):
- Включите опцию Использовать имя атрибута (Use attribute name).
- Введите имя атрибута схемы или поля.
В первую очередь правило осуществляет поиск атрибута схемы с этим именем в каждой связи схемы, присоединенной к сокращаемому узлу. Если атрибут схемы с этим именем не найден, правило выполнит поиск поля с этим именем в ГИС-объекте, относящемся к связи схемы. Узел будет сокращен только в том случае, если у всех присоединенных к нему связей есть атрибуты или поля с указанным значением.
- При фильтрации сокращаемых узлов схемы также можно задать расширенный критерий. Чтобы использовать этот критерий, необходимо указать параметры в разделе Расширенные критерии (Extended criteria):
- Включите опцию Использовать расширенный критерий (Use extended criteria).
- Выберите нужный расширенный критерий из раскрывающегося списка.
Расширенный критерий правила Сокращения узлов по приоритету (Node Reduction By Priority) реализует интерфейс esriSchematic.ISchematicNodeReductionExtended interface.
Расширенный критерий применяется к сокращаемым узлам вместе другими указанными опциями сокращения. Он определяет, будет ли узел действительно удален после выполнения правила. Он также определяет целевой узел, к которому будут присоединены соединенные с сокращенным узлом связи.
- Определите, каким образом будет сохранена топология сети после сокращения указанных узлов, а именно укажите целевые узлы, которые будут использованы для восстановления связей, соединенных с сокращенными узлами.
- Выберите пункт Выбрать ближайший узел (Select the nearest node), если необходимо, чтобы ближайший узел, соединенный с сокращенным узлом, стал целевым узлом. В этом случае выбор целевого узла зависит только от расстояния между сокращенным узлом и связанными с ним узлами. Ближайший узел становится целевым узлом, а результат не будет зависеть от класса пространственного объекта, на котором основан целевой узел.
- Выберите пункт Выбрать узел с высочайшим приоритетом (Select the highest priority node), если необходимо, чтобы целевой узел, с которым будут соединены связи сокращенных узлов, определялся исходя из приоритетов классов пространственных объектов.
В этом случае для того, чтобы был выбран верный целевой узел, правило сокращения проверяет для каждого связанного с сокращенным узлом узла, опции, указанные в разделе Опции приоритета целевых узлов (Target node priority options).
- Если среди всех связанных с сокращенным узлом узлов, только один принадлежит классу пространственных объектов с высочайшим приоритетом, он становится целевым.
- Если среди всех связанных с сокращенным узлом узлов, нет узлов, принадлежащих классу пространственных объектов с высочайшим приоритетом, правило будет проверять связанные узлы на принадлежность к классу пространственных объектов второго уровня приоритета и т. д.
- Если среди всех связанных с сокращенным узлом узлов классу пространственных объектов с высочайшим приоритетом принадлежит сразу несколько узлов, целевой узел будет выбран в соответствии с опциями, указанными в подразделе Расчет множественного выбора (Multiple choices solving).
Дополнительные параметры находятся в разделе Опции приоритета целевого узла (Target node priority options).
- Список классов пространственных объектов в порядке убывания приоритетов (Schematic feature class list ordered by decreasing priorities) содержит все классы пространственных объектов, относящиеся к шаблону схемы в порядке убывания, а именно начиная с класса с высочайшим приоритетом и заканчивая классом с самым низким приоритетом. Чтобы изменить уровень приоритета класса пространственного объекта, щелкните название класса, перетащите его на другой уровень и отпустите кнопку.
- В подразделе Решение множественного выбора (Multiple choices solving) можно указать, каким образом следует выбирать целевой узел в случае конфликта нескольких кандидатов в целевые узлы, то есть в случае наличия нескольких узлов, принадлежащих классу пространственных объектов с высочайшим приоритетом.
При активации опции Выбрать ближайший узел в случае конфликта между двумя узлами с одинаковым приоритетом (Select the nearest node if conflict between two nodes with same priority) ближайший узел станет целевым узлом, если классы пространственных объектов конфликтующих узлов отмечены в разделе Выбрать классы пространственных объектов, в которых в случае конфликта более двух узлов будет выбран ближайший узел (Check schematic feature classes for which the nearest node is selected when conflict between more than two nodes).
- Нажмите кнопку OK, чтобы закрыть диалоговое окно Свойства правила (Rule Properties).