Контурные маски (Картография)

Сводка

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

Использование

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

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

  • Если возможности печати и экспорта карты для вас так же важны, как и ее наглядность, то скорее всего вам следует использовать простейшие маски для достижения ваших целей. В частности, когда вы маскируете аннотации, вы можете использовать тип маски CONVEX_HULL, который подходит для многих целей. Если вам нужны более детальные текстовые маски, используйте тип EXACT_SIMPLIFIED. В целом, при маскировании большого количества текста на большой карте, избегайте использования маски типа EXACT, поскольку при этом будет создано слишком много составных масок для корректного результата.

  • Значения полей, как правило, указываются в единицах страницы, но также можно указать их и в единицах карты.

  • Допустимы значения полей, большие 0. Если оно будет равно 0, будут созданы маски, представляющие реальную форму условных знаков объектов.

  • Если входной слой является слоем аннотаций, базовый масштаб будет автоматически установлен равным базовому масштабу слоя класса объектов.Это делается для более точного вычисления маски.

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

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

Синтаксис

arcpy.cartography.FeatureOutlineMasks(input_layer, output_fc, reference_scale, spatial_reference, margin, method, mask_for_non_placed_anno, {attributes})
ParameterОбъяснениеТип данных
input_layer

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

Layer
output_fc

Класс пространственных объектов, который будет содержать объекты маски.

Feature Class
reference_scale

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

Double
spatial_reference

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

Spatial Reference
margin

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

Поле не может быть отрицательным.

Linear Unit
method

Задает тип геометрии создаваемой маски.

  • BOXПолигон, представляющий экстент символа объекта.
  • CONVEX_HULLВыпуклая оболочка рисунка геометрии объекта. Используется по умолчанию.
  • EXACT_SIMPLIFIEDПолигон после генерализации, представляющий собой точную форму символа объекта. Полигоны, созданные этим методом, будут иметь значительно меньшее количество вершин, по сравнению с полигонами, созданными методом EXACT.
  • EXACTПолигон, представляющий собой точную форму символа объекта.
String
mask_for_non_placed_anno

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

  • ALL_FEATURESСоздает маски для всех объектов-аннотаций.
  • ONLY_PLACEDСоздает маску только для объектов со статусом "размещенные".
String
attributes
(Дополнительный)

Определяет, какие атрибуты будут перенесены из входных объектов в выходные.

  • ONLY_FIDТолько поле FID из входных объектов будет перенесено в выходные объекты. Используется по умолчанию.
  • NO_FIDВсе атрибуты, кроме FID, из входных объектов, будут перенесены в выходные объекты.
  • ALL Все атрибуты из входных объектов будут перенесены в выходные объекты.
String

Пример кода

FeatureOutlineMasks, пример 1 (окно Python)

Следующий скрипт окна Python показывает, как использовать инструмент FeatureOutlineMasks в режиме прямого запуска.

import arcpy
arcpy.env.workspace = "C:/data"
sr = arcpy.SpatialReference(4326)
arcpy.FeatureOutlineMasks_cartography("C:/data/cartography.gdb/transportation/roads",
                                "C:/data/cartography.gdb/transportation/fom_polys",
                                "25000", sr, "5 meters","EXACT_SIMPLIFIED", 
                                "ALL_FEATURES", "ALL")
FeatureOutlineMasks, пример 2 (автономный скрипт)

В этом автономном скрипте показан пример использования инструмента FeatureOutlineMasks.

# Name: FeatureOutlineMasks_standalone_script.py
# Description: Creates mask polygons at a specified distance and shape
#           around symbolized features. 
 
# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data"

# Set local variables
input_layer = "roads.lyrx"
output_fc = "cartography.gdb/transportation/roads_fom_polys"
reference_scale = "25000"
spatial_reference = arcpy.SpatialReference(4326) 
margin = "5 meters"
method = "EXACT_SIMPLIFIED"
mask_for_non_placed_anno = "ONLY_PLACED"
attributes = "ALL"

# Execute Feature Outline Masks
arcpy.FeatureOutlineMasks_cartography(input_layer,
                                      output_fc,
                                      reference_scale,
                                      spatial_reference,
                                      margin, method,
                                      mask_for_non_placed_anno,
                                      attributes)

Информация о лицензиях

  • Basic: Нет
  • Standard: Нет
  • Advanced: Да

Связанные разделы