ListStyleItems (arcpy.mapping)
Резюме
Возвращает Python-список объектов StyleItem. Связанный элемент легенды из файла стиля (.style) затем может использоваться для обновления уже существующих элементов легенды в компоновке.
Обсуждение
Элементы Style можно просматривать и редактировать в окне Менеджер стилей (Style manager). Элементы Styles хранятся в файле (.style) и распределены по разным подпапкам с уникальными именами, например, Символы маркеров или Элементы легенды. В настоящее время, с методами arcpy.mapping может использоваться только один элемент стиля, Элементы легенды. Элементы легенды определяют способ отображения слоя в легенде. Например, в нем хранится такая информация, как размещение легенды, символ имени слоя, образец по умолчанию и т.д.
Элементы стилей отображаются в arcpy.mapping API, так что пользователи могут контролировать внешний вид стилей элементов легенды. Наиболее часто встречающееся требование – возможность контролировать размер шрифта, использующийся по умолчанию, или тип шрифта для вновь добавляемых элементов легенды. Для этого, сначала необходимо создать пользовательский элемент легенды и сделать ссылку на него с помощью функции ListStyleItems. Затем, следует связать соответствующий Layer который находится в Legend, и использовать метод updateItem. Пример этого рабочего процесса показан в примере кода, приведенном ниже.
Синтаксис
Параметр | Объяснение | Тип данных |
style_file_path |
Полный путь к существующему файлу стиля (.style) или стиля сервера (.serverstyle). Есть два дополнительных ярлыка, не требующих полный путь. Сначала введите имя системного файла стиля ArcGIS, например, "ESRI.style" или "Transportation.style". Функция автоматически ищет стиль в соответствующей папке стиля ArcGIS. Далее, в ArcGIS for Desktop вы можете использовать ключевое слово "USER_STYLE". Это приведет к автоматическому поиску профиля локальной учетной записи вместо введения полного пути. Если стиль не существует ни в одном из двух известных системных местоположений, должен быть введен полный путь, включающий расширение файла, например, "C:\Project\CustomStyles.style". | String |
style_folder_name |
Имя папки стиля в файле стиля – как оно отображается в окне Менеджер стилей (Style manager). В настоящий момент с другими методами arcpy.mapping могут использоваться только Элементы легенды (Legend Items). | String |
wildcard |
Использование звездочки (*) в комбинации с другими символами поможет ограничить результаты именем элемента стиля. (Значение по умолчанию — None) | String |
Пример кода
Следующий скрипт использует рабочий процесс, описанный выше, и обновляет стиль элемента легенды. В первый фрейм данных документа карты добавляется слой, а стиль элемента легенды обновляется с использованием пользовательского стиля NewDefaultLegendStyle. Пользовательский файл .style сохранен в папке профиля пользователя.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd)[0]
lyrFile = arcpy.mapping.Layer(r"C:\Project\Data\Rivers.lyr")
arcpy.mapping.AddLayer(df, lyrFile, "TOP")
styleItem = arcpy.mapping.ListStyleItems("USER_STYLE", "Legend Items", "NewDefaultLegendStyle")[0]
legend = arcpy.mapping.ListLayoutElements(mxd, "LEGEND_ELEMENT")[0]
legend.updateItem(lyrFile, styleItem)
del mxd