ListLayoutElements (arcpy.mapping)
Резюме
Возвращает список элементов компоновки Python, которые существуют в компоновке документа карты (.mxd).
Обсуждение
ListLayoutElements всегда возвращает объект Python list, даже если возвращается только один элемент страницы. Чтобы вернуть имя отдельного объекта элемента, необходимо использовать индексное значение для списка (например, elm = arcpy.mapping.ListLayoutElements(mxd)[0]). For зацикливает список, что обеспечивает простой механизм итерации каждого элемента списка (например, для elm в методе arcpy.mapping.ListLayoutElements(mxd):).
ListLayoutElements возвращает только элементы из компоновки страницы, но не элементы аннотаций карты, которые могут существовать внутри фрейма данных.
Каждый элемент страницы имеет свойство имени, которое может быть установлено с помощью диалогового окна свойств элемента в ArcMap (расположенного на закладке Размер и положение (Size and Position)). Автор документа карты должен убедиться, что каждому элементу страницы присвоено уникальное имя, чтобы эти элементы можно было однозначно идентифицировать. Если два элемента имеют одинаковое имя, нет никакого способа убедиться, что вы выбрали нужный элемент.
ListLayoutElements также возвращает элементы внутри составного элемента в виде упрощенного списка. Это делает возможным легко искать и заменять, например, текстовые строки, без необходимости переходить по элементам внутри структуры составного элемента.
Параметр element_type может быть пропущен простой заменой на пустую строку ("") или введением element_type=None.
Групповые символы используются для свойства name и не являются чувствительными к регистру. Строка групповых символов "*title" будет возвращать элемент страницы с именем Main Title (Главный заголовок). Групповые символы в синтаксисе скрипта можно пропустить, просто передав пустую строку (""), звездочку (*) или значение wildcard=None, а также не передавая ничего в случае, если это последний дополнительный параметр в синтаксисе.
Обратитесь к отдельным объектам элементов для получения дополнительной информации: DataFrame, GraphicElement, LegendElement, MapsurroundElement, PictureElement и TextElement.
Синтаксис
Параметр | Объяснение | Тип данных |
map_document |
Переменная, которая ссылается на объект MapDocument. | MapDocument |
element_type |
Строка, представляющая тип элемента, который будет использоваться для фильтрации полученного списка элементов.
(Значение по умолчанию — None) | String |
wildcard |
Для наложения ограничения на результаты можно использовать сочетание звездочек (*) и символов. (Значение по умолчанию — None) | String |
Тип данных | Объяснение |
Object |
Список Python объектов компоновки страницы. Могут быть получены следующие типы элементов: DataFrame, GraphicElement, LegendElement, MapsurroundElement, PictureElement и TextElement. |
Пример кода
Данный скрипт найдет все текстовые элементы, включая элементы в группе, которые имеют текстовое значение Old String, и заменит это значение на New String.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.text == "Old String":
elm.text = "New String"
mxd.save()
del mxd
Следующий скрипт находит элемент изображения, используя групповой символ, и затем изменяет источник данных изображения.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for elm in arcpy.mapping.ListLayoutElements(mxd,"PICTURE_ELEMENT", "*logo*"):
if elm.name == "CityLogo":
elm.sourceImage = r"C:\Project\Data\Photo.bmp"
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd