Краткая информация
Объект LegendElement обеспечивает доступ к свойствам, с помощью которых можно размещать и изменять их размер в компоновке страницы, а также изменять заголовок. Также предоставляет доступ к отдельным LegendItem.
Обсуждение
LegendElement очень похож на MapSurroundElement. Он связывается с MapFrame с помощью свойства, который называется mapFrame, но у него также есть свойство title.
Метод listElements для Layout возвращает список Python объектов элементов компоновки страницы. Чтобы получить список только элементов MapsurroundElements, используйте константу MAPSURROUND_ELEMENT для параметра element_type. wildcard также может быть использована для дальнейшей настройки поиска на основе элемента name. Важно давать каждому элементу компоновки страницы уникальное имя, чтобы их можно было легко изолировать с помощью скриптов ArcPy.
По умолчанию добавляемые в Карту слои автоматически добавляются в легенду. Это делает возможным создание Компоновки с пустой картой и легендой и динамического обновления этих элементов при добавлении в карту новых слоев.
Значения elementPositionX и elementPositionY базируются на положении якорной точки элемента, которое установлено на вкладке Формат. Если вы предпочитаете, чтобы при добавлении слоев LegendElement увеличивался вниз, то лучше установить положение якоря в верхнем левом углу.
Свойство items возвращает список классов LegendItem, которые можно изменить индивидуально для настройки содержания легенды. Класс LegendElement также предоставляет методы AddItem, MoveItem и RemoveItem, позволяя вам лучше настроить элементы в легенде. Оба класса, LegendElement и LegendItem, обеспечивают доступ только к общим свойствам. Детализированный доступ может быть предоставлен с помощью Доступа Python CIM. Примеры для обоих классов.
Свойства
Свойство | Описание | Тип данных |
columnCount (чтение и запись) | Количество указанных столбцов в легенде. Это свойство применяется, только если для fittingStrategy установлено значение AdjustFontSize, AdjustFrame или ManualColumns. | Long |
elementHeight (чтение и запись) | Высота элемента в единицах страницы. | Double |
elementPositionX (чтение и запись) | x-положение позиции точки якоря элемента. Единицы измерения задаются или считываются в единицах страницы. | Double |
elementPositionY (чтение и запись) | y-положение позиции точки якоря элемента. Единицы измерения задаются или считываются в единицах страницы. | Double |
elementRotation (чтение и запись) | Поворачивает элемент относительно положения якоря. Положительные значения - против часовой стрелки, отрицательные - по часовой стрелке. | Double |
elementWidth (чтение и запись) | Ширина элемента в единицах страницы. | Double |
fittingStrategy (чтение и запись) | Строка, представляющая допустимый метод стратегии расположения. Корректными значениями являются следующие:
| String |
items (только чтение) | Возвращает список связанных классов LegendItem. Вы не можете напрямую задать это свойство, но можете перебирать элементы легенды и изменять их свойства. | List |
mapFrame (чтение и запись) | Ссылка на связанный MapFrame. | MapFrame |
name (чтение и запись) | Имя элемента. Важно, чтобы все элементы имели уникальное имя, благодаря чему на них было бы легко ссылаться по имени. | String |
showTitle (чтение и запись) | Логическое значение, определяющее, отображается ли заголовок в легенде. | Boolean |
syncLayerOrder (чтение и запись) | Логическое значение, определяющее, находятся ли элементы в легенде в том же порядке, что и слои на карте. | Boolean |
syncLayerVisibility (чтение и запись) | Логическое значение, определяющее, должен ли элемент автоматически отображаться в легенде, если он виден на карте. | Boolean |
syncNewLayer (чтение и запись) | Логическое значение, определяющее, должен ли элемент автоматически добавляться в легенду при добавлении на карту. | Boolean |
syncReferenceScale (чтение и запись) | Логическое значение, определяющее, должны ли символы в легенде соответствовать масштабированию символов на карте, если установлен базовый масштаб. | Boolean |
title (чтение и запись) | Текстовая строка, представляющая заголовок легенды. | String |
type (только чтение) | Возвращает значение LEGEND_ELEMENT. | String |
visible (чтение и запись) | Возвращает True, если элемент является видимым в компоновке. Вместо того, чтобы убирать ненужные объекты со страницы перед печатью или экспортом, вы можете включать и выключать видимость элемента. | Boolean |
Обзор метода
Метод | Описание |
addItem (layer, {add_position}) | Позволяет добавить Слой в легенду, используя базовые свойства размещения. |
moveItem (reference_item, move_item, {move_position}) | Позволяет разместить элемент легенды в конкретном месте в легенде. |
removeItem (remove_item) | Позволяет удалить элемент легенды из легенды. |
Методы
addItem (layer, {add_position})
Параметр | Описание | Тип данных |
layer | Ссылка на объект Layer, представляющий слой, добавленный в легенду как LegendItem. | Layer |
add_position | Константа, определяющая место добавленного слоя в легенде.
(Значение по умолчанию — TOP) | String |
Тип данных | Описание |
LegendItem | Объект LegendItem. |
Метод addItem, позволяющий добавлять слой к легенде в компоновке. По умолчанию add_position добавляет слой сверху списка элементов легенды, то есть он появляется первым. Для более точного размещения элементов легенды примените метод moveItem.
moveItem (reference_item, move_item, {move_position})
Параметр | Описание | Тип данных |
reference_item | Объект LegendItem, представляющий существующей элемент легенды и определяет местоположение, в которое move_item будет перемещен . | LegendItem |
move_item | Ссылка на объект LegendItem, представляющий слой, выбираемый для перемещения. | Layer |
move_position | Константа, которая определяет размещение перемещаемого слоя по отношению к базовому слою.
(Значение по умолчанию — BEFORE) | String |
Метод moveItem перемещает элемент легенды в легенде. move_item Можно переместить или AFTER или BEFORE reference_item.
removeItem (remove_item)
Параметр | Описание | Тип данных |
remove_item | Ссылка на объект LegendItem, представляющий элемент, выбираемый для удаления. | LegendItem |
Метод removeItem удаляет отдельный элемент легенды из легенды.
Пример кода
Следующий скрипт добавит слои в карту, которая содержит вставленный элемент легенды с именем Legend. Слои будут автоматически добавлены в легенду, заголовок которой будет обновлен.
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
lyr1 = arcpy.mp.LayerFile(r"C:\Projects\Yosemite\LYRs\Trails.lyrx")
lyr2 = arcpy.mp.LayerFile(r"C:\Projects\Yosemite\LYRs\PointsOfInterest.lyrx")
m = aprx.listMaps("Yose*")[0]
m.addLayer(lyr1, "TOP")
m.addLayer(lyr2, "TOP")
lyt = aprx.listLayouts("Main Attrations")[0]
legend = lyt.listElements("LEGEND_ELEMENT", "Legend")[0]
legend.title = "Yosemite National Park"
aprx.save()
del aprx