Объекты маски

Маскирование - это способ сделать невидимыми часть объектов с символами для улучшения читаемости перекрывающихся символов или текста. Геометрия объектов не меняется. Происходит только изменение символов.

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

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

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

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

Существует три типа стратегий маскирования:

  • Маскирование слоя - полигональные объекты в слое маски используются для создания визуальных пробелов в символах объектов выбранного слоя карты или сцены. Приведенный выше пример, в котором полигоны маски создают пробелы в символах изолиний, является примером маскирования слоя.
  • Расширенное маскирование - это маскирование слоя, но с тем уточнением, что маскирование выполняется только для поднабора слоев символов в символах выбранного слоя. Например, маскируется только пересечение дороги (слой символов штриховки) для линейного символа дороги. Внутренний цвет символа дороги (второй слой символов штриховки символов линии дороги) не маскируется.
  • Маскирование на уровне объектов – маскирование выполняется пообъектно, как задано классом отношений между слоем маски и маскируемым слоем.
Примечание:

3D-слои в сцене не могут маскироваться, но их можно использовать как слои маски.

Создание маскирующего слоя

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

  • Контурные маски - создает полигоны определенной формы, которые можно использовать в качестве масок на заданном расстоянии вокруг входных объектов с символами.
  • Маски пересечения слоев - создает полигоны, которые можно использовать в качестве масок заданной формы и размера, на пересечении двух входных слоев с символами.
  • Тупиковые маски - создает полигоны, которые можно использовать в качестве масок на несоединенных концах линий для сглаживания перехода соединений линий.
  • Создать маску пересечения Над или Создать маску пересечения Под - идентифицирует конфликты объектов, создает полигональные объекты маски и автоматически задает отношения для маскирования на уровне слоя. Для работы с поднабором объектов используйте выражение.

Чтобы создать слой маски, используя геообработку, выполните следующие действия:

  1. Во вкладке Анализ в группе Геообработка щелкните Инструменты Инструменты.
  2. На панели Геообработка перейдите к Инструментам картографии > Маскирование и щелкните соответствующий рабочему процессу инструмент, чтобы открыть его.
  3. Задайте параметры и запустите инструмент.

    Создается класс полигональных объектов, подходящий для маскирования, и добавляется на карту или сцену.

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

Использования маскирования слоев

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

Чтобы маскировать слой полигонами одного или нескольких слоев маскирования, выполните следующие действия:

  1. Убедитесь, что маскирование карты или сцены включено.
  2. Выберите слой, который будет замаскирован, на панели Содержание.
  3. На вкладке Векторный слой в группе Отображение щелкните Маскирование Маскирование.
  4. В ниспадающем меню отметьте один или несколько слоев, содержащих полигоны маскирования.
  5. Чтобы увидеть полный визуальный эффект маскирования, отключите видимость полигональных слоев маскирования на панели Содержание.

    Хотя сами объекты маски не отображаются, они должны оставаться на карте или в сцене, чтобы эффект маскирования сохранялся.

Использование расширенного маскирования

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

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

Необходимо включить отображение символов слоя, чтобы использовать расширенное маскирование.

Чтобы использовать расширенное маскирование для маскирования только определенных слоев символов выбранного слоя, выполните следующие действия:

  1. Убедитесь, что маскирование карты или сцены включено.
  2. Убедитесь, что отображение символов слоя включено.
  3. Выберите слой объектов для маскирования на панели Содержание.
  4. На вкладке Векторный слой в группе Отображение щелкните ниспадающее меню Маскирование Маскирование. и выберите Расширенное маскирование.
  5. В диалоговом окне Расширенное маскирование в списке Источники маски отметьте один или несколько полигональных источников маски.
  6. В списке Слои символов перечислены все слои символов для слоя маскирования в порядке их отображения. Разверните группы при необходимости, чтобы увидеть уменьшенные изображения каждого слоя символов. Отметьте слои символов для маскирования. Чтобы следовать приведенному выше примеру, отметьте слои символов дорожной разметки, чтобы замаскировать их, но не отмечайте символы центров дорог.
  7. Щелкните OK, чтобы применить маску к слою или слоям символов.
  8. Чтобы увидеть полный визуальный эффект маскирования, отключите видимость полигональных слоев маскирования на панели Содержание.

    Хотя сами объекты маски не отображаются, они должны оставаться на карте или в сцене, чтобы эффект маскирования сохранялся.

Включение или выключение маскирования для всей карты

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

Примечание:

Этот параметр не применяется к маскированию на уровне объектов.

Чтобы включить или выключить маскирование для всей карты или сцены, выполните эти шаги:

  1. На панели Содержание щелкните правой кнопкой имя карты или сцены.
  2. В контекстном меню щелкните Свойства Свойства, чтобы открыть диалоговое окно Свойства для карты или сцены.
  3. В диалоговом окне Свойства на вкладке Общие включите опцию Использовать маскирование.
  4. Или, можно щелкнуть правой кнопкой мыши карту на панели Содержание и выбрать Маскирование Маскирование, чтобы включить или выключить маскирование.

    Серая рамка вокруг значка показывает, что маскирование включено. Снова щелкните Маскирование, чтобы выключить ее.

Использование маскирования на уровне объектов

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

Также можно использовать геообработку для обнаружения конфликтов и построения масок и классов отношений. Используйте инструмент Создать маску пересечения Над или Создать маску пересечения Под для идентификации конфликтов, создания полигонов маски и установки отношений. Вы можете редактировать полученные полигоны маскирования, если необходимо.

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

  1. Убедитесь, что полигональной слой маски, слой маскирования и класс отношений многие-ко-многим, связывающий их, присутствуют на панели Содержание карты.
  2. Выберите слой для маскирования на панели Содержание.
  3. На вкладке Векторный слой в группе Отображение щелкните Символы, Символы, чтобы открыть панель Символы.
  4. Перейдите на вкладку Дополнительные опции символов Дополнительные опции символов.
  5. Разверните заголовок Маскирование на уровне объектов и отметьте класс отношений для включения маскирования.

    Полигоны маскирования работают как маска для объектов в текущем слое.

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

    Хотя сами объекты маски не отображаются, они должны оставаться на карте или в сцене, чтобы эффект маскирования сохранялся.

Примечание:

Включение или выключение маскирования на уровне карты не влияет на маскирование на уровне объектов.