Краткая информация
Возвращает Python-список объектов StyleItem. Связанный элемент легенды из файла стиля (.style или .ServerStyle) затем может использоваться для обновления уже существующих элементов легенды в компоновке.
Обсуждение
В ArcGIS for Desktop элементы стиля хранятся в файле .style. В ArcGIS for Server элементы стиля хранятся в файле .ServerStyle. Элементы стиля в файле .style можно просматривать и управлять ими в окне Менеджер стилей (Style manager). Файлы стиля расположены в разных подпапках с уникальными именами, например, Символы маркеров (Marker Symbols или Элементы легенды (Legend Items). В настоящее время с другими методами arcpy.mapping может использоваться только один элемент стиля – элементы легенды. Элементы легенды определяют способ отображения слоя в легенде. Например, в них хранится такая информация, как размещение легенды, символ имени слоя и образец по умолчанию.
Элементы стилей отображаются в arcpy.mapping API, таким образом пользователи могут контролировать отображение стилей элементов легенды. Наиболее часто встречающееся требование – возможность контролировать размер шрифта, использующийся по умолчанию, или тип шрифта для вновь добавляемых элементов легенды. Для этого, сначала необходимо создать пользовательский элемент легенды и сделать ссылку на него с помощью функции ListStyleItems. Затем следует связать соответствующий Layer который находится в Legend, и использовать метод updateItem. Пример этого рабочего процесса показан в примере кода, приведенном ниже.
Синтаксис
ListStyleItems (style_file_path, style_folder_name, {wildcard})
Параметр | Объяснение | Тип данных |
style_file_path | Полный путь к существующему файлу стиля (.style) или стиля сервера (.ServerStyle). Есть два дополнительных ярлыка, не требующих полный путь. Сначала введите имя системного файла стиля ArcGIS, например, "ESRI.style" или "ESRI.ServerStyle" или "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 |
Пример кода
ListStyleItems пример
Следующий скрипт использует рабочий процесс, описанный выше, и обновляет стиль элемента легенды. В первый фрейм данных документа карты добавляется слой, а стиль элемента легенды обновляется с использованием пользовательского стиля под именем 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]
lyr = arcpy.mapping.ListLayers(mxd, 'Rivers', df)[0]
legend = arcpy.mapping.ListLayoutElements(mxd, "LEGEND_ELEMENT")[0]
legend.updateItem(lyr, styleItem)
del mxd