Конвертировать надписи в аннотации (Картография)

Сводка

Конвертирует надписи в аннотации для одного слоя или всей карты. Могут быть созданы и обычные, и объектно-связанные аннотации.

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

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

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

    Примечание:

    В ArcGIS Pro диапазоны масштабов классов надписей устанавливаются на вкладке Надписи.

  • Классы объектов-аннотаций не будут перезаписываться, если будет указан уже существующий суффикс. В этом случае к суффиксу класса объектов-аннотаций будет добавлен номер (например, CitiesAnno, CitiesAnno_1 и т.д.). Полный формат имени является следующим:

    <layer name> <duplicate feature class count> <anno suffix> <running number>

  • Если вы создаете аннотации для большого диапазона базовых масштабов, разрабатывайте оформление вашей карты отдельно для каждого из этих масштабов и не устанавливайте базовый масштаб в карте. Затем можно конвертировать надписи в аннотации для каждого масштаба и назвать их соответственно, например, CitiesAnno_1000, CitiesAnno_100000.

  • Выходными данными для этого инструмента является составной слой. При работе на панели Каталог, окне Python или с автономным скриптом Python можно применить инструмент Сохранить в файл слоя, чтобы записать выходной составной слой в файл слоя. При использовании ArcGIS Pro, инструмент добавляет составной слой на экран. Создаваемый составной слой является временным и не сохранится по окончании работы в программе, если проект не будет сохранен.

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

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

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

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

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

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

  • Связанные с объектами аннотации не поддерживаются рабочими областями Память и in_memory.

Синтаксис

arcpy.cartography.ConvertLabelsToAnnotation(input_map, conversion_scale, output_geodatabase, {anno_suffix}, {extent}, {generate_unplaced}, {require_symbol_id}, {feature_linked}, {auto_create}, {update_on_shape_change}, {output_group_layer}, {which_layers}, {single_layer}, {multiple_feature_classes}, {merge_label_classes})
ParameterОбъяснениеТип данных
input_map

Входная карта.

Map
conversion_scale

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

Double
output_geodatabase

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

Workspace; Feature Dataset
anno_suffix
(Дополнительный)

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

String
extent
(Дополнительный)

Задает экстент, который содержит надписи, конвертируемые в аннотации.

  • MAXOF - будет использоваться максимальный экстент всех входных данных.
  • MINOF - будет использоваться минимальная область, общая для всех входных данных.
  • DISPLAY– экстент будет равен видимому отображению.
  • Имя слоя - будет использоваться тот же экстент, что и в указанном слое.
  • Объект Extent - будет использоваться тот же экстент, что и в указанном объекте.
  • Строка координат, разделенных пробелами – будет использоваться экстент из заданной строки. Координаты должны быть выражены в таком порядке: x-min, y-min, x-max, y-max.
Extent
generate_unplaced
(Дополнительный)

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

  • ONLY_PLACEDАннотации будут создаваться только для надписанных объектов. Это значение по умолчанию.
  • GENERATE_UNPLACEDНеразмещенные аннотации сохраняются в класс объектов аннотаций. Устанавливается значение Unplaced в поле статуса таких аннотаций.
Boolean
require_symbol_id
(Дополнительный)

Определяет возможность ограничения редактирования свойств символов.

  • NO_REQUIRE_IDРазрешить редактировать любые свойства текстового символа. Это значение по умолчанию.
  • REQUIRE_IDРазрешить редактирование только тех свойств символов, изменение которых позволяют объектам-аннотациям сохранять связь с ассоциированными тестовыми символами из коллекции.
Boolean
feature_linked
(Дополнительный)
Лицензия:

Этот параметр доступен только с лицензиями ArcGIS Desktop Standard и ArcGIS Desktop Advanced.

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

  • STANDARDВыходной класс объектов-аннотаций не будет связан с объектами в другом классе пространственных объектов. Это значение по умолчанию.
  • FEATURE_LINKEDВыходной класс объектов-аннотаций будет связан с объектами в другом классе пространственных объектов.
Boolean
auto_create
(Дополнительный)

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

  • AUTO_CREATEПри добавлении новых объектов в класс связанных пространственных объектов будут создаваться объектно-связанные аннотации. Это значение по умолчанию.
  • NO_AUTO_CREATEПри добавлении новых объектов в класс связанных пространственных объектов объектно-связанные аннотации создаваться не будут.
Boolean
update_on_shape_change
(Дополнительный)

Указывает, будет ли позиция аннотации обновляться при обновлении формы связанного объекта, если для параметра feature_linked задано значение FEATURE_LINKED.

  • SHAPE_UPDATEПоложение аннотации при изменении формы связанного пространственного объекта будет обновлено. Это значение по умолчанию.
  • NO_SHAPE_UPDATEПоложение аннотации при изменении формы связанного пространственного объекта не будет обновлено.
Boolean
output_group_layer
(Дополнительный)

Составной слой, содержащий созданные аннотации. Можно использовать инструмент Сохранить в файл слоя, чтобы записать выходной составной слой в файл слоя.

Group Layer
which_layers
(Дополнительный)

Задает возможность конвертации аннотаций всех слоев карты либо одного слоя. Необходимо указать Один слой.

  • ALL_LAYERSПодписи будут конвертированы в аннотации для всех слоев карты. Это значение по умолчанию.
  • SINGLE_LAYERНадписи будут конвертированы в аннотации для одного слоя. Необходимо указать этот слой.
String
single_layer
(Дополнительный)

Слой с конвертируемыми аннотациями, если задано значение which_layers параметра SINGLE_LAYER. Этот слой должен быть на карте.

Feature Layer
multiple_feature_classes
(Дополнительный)

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

  • SINGLE_FEATURE_CLASSНадписи из всех слоев будут преобразованы в один класс объектов-аннотаций.
  • FEATURE_CLASS_PER_FEATURE_LAYERНадписи будут преобразованы в отдельные классы объектов аннотаций, соответствующие их слоям. Это значение по умолчанию.
Boolean
merge_label_classes
(Дополнительный)

Определяет, будут ли сходные классы подписей объединяться, если для параметра multiple_feature_classes задано значение SINGLE_FEATURE_CLASS.

  • MERGE_LABEL_CLASSКлассы подписей со сходными свойствами будут объединяться, если для параметра multiple_feature_classes задано значение SINGLE_FEATURE_CLASS.
  • NO_MERGE_LABEL_CLASSКлассы подписей не будут объединяться, если для параметра multiple_feature_classes задано значение SINGLE_FEATURE_CLASS. Это значение по умолчанию.
Boolean

Производные выходные данные

NameОбъяснениеТип данных
updated_geodatabase

Рабочая область, в которой будут сохранены выходные классы пространственных объектов.

Рабочая область

Пример кода

Пример ConvertLabelsToAnnoation (окно Python)

Пример Python для инструмента ConvertLabelsToAnnotation, который конвертирует подписи в аннотации для одного слоя карты.

import arcpy
arcpy.cartography.ConvertLabelsToAnnotation(
    'Map1', 10000, 'D:/data/Cobourg.gdb', 'Anno', 'MAXOF', 'ONLY_PLACED', 
    'REQUIRE_ID', 'STANDARD', '', '', 'AnnoLayer', 'SINGLE_LAYER', 'Schools', '', '')
ConvertLabelsToAnnotation, пример 2 (автономный скрипт)

Автономный скрипт, который конвертирует подписи в аннотации для карты при помощи функции ConvertLabelsToAnnotation. Подписи будут конвертированы в один класс объектов-аннотаций, и схожие классы подписей будут объединены.

# Name: ConvertLabelsToAnnotation.py
# Description: Find all the maps in the project and
#              convert labels to annotation for each map
# import system modules
import arcpy
# Loop through the project, find all the maps, and
#   convert labels to annotation for each map,
#   using the name of the map as part of the annotation suffix 
project = arcpy.mp.ArcGISProject("D:\\data\\myproject.aprx")
for mp in project.listMaps():
    print("Converting labels to annotation for: " + mp.name)
    arcpy.cartography.ConvertLabelsToAnnotation(
            mp, 10000, 'D:/data/Cobourg.gdb', 'Anno_' + mp.name, 'MAXOF', 
            'ONLY_PLACED', 'REQUIRE_ID', 'STANDARD', '', '', 
            'AnnoLayers_' + mp.name, 'ALL_LAYERS', '', 'SINGLE_FEATURE_CLASS', 
            'MERGE_LABEL_CLASS')

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

  • Basic: Да
  • Standard: Да
  • Advanced: Да

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