Краткая информация
Item обеспечивает доступ UniqueValueRenderer к информации на уровне элемента.
Обсуждение
Класс Item позволяет изменять такие свойства, как label и description, а также обеспечивает доступ к отдельному Символу для каждого элемента.
Свойства
Свойство | Описание | Тип данных |
description (чтение и запись) | Получает и настраивает описание для данного элемента. | String |
label (чтение и запись) | Получает и настраивает надпись для данного элемента. | String |
symbol (чтение и запись) | Получает и настраивает символ, связанный с элементом. | Symbol |
values (только чтение) | Получает список значений, связанных с каждым из элементов. Когда элементы сгруппированы внутри группы, получается несколько значений. | List |
Пример кода
Следующий скрипт сначала изменяет способ отображения на UniqueValueRenderer. Затем, он задает свойство fields, когда используется отдельное поле, которое называется Percent. Затем он проходит итератором через каждый Item в каждом ItemGroup и задает цвет RGB на красный для альфа, либо значение прозрачности, которое соответствует значению Percent для каждого объекта. И, наконец, он надписывает все значения, снова задает символы для слоя и сохраняет выходные данные.
import arcpy, os, sys
relpath = os.path.dirname(sys.argv[0])
p = arcpy.mp.ArcGISProject(relpath + r'\\UniqueValue.aprx')
m = p.listMaps('Map')[0]
l = m.listLayers('PercentCover*')[0]
sym = l.symbology
sym.updateRenderer('UniqueValueRenderer')
sym.renderer.fields = ['Percent']
for grp in sym.renderer.groups:
for itm in grp.items:
transVal = itm.values[0][0] #Grab the first "percent" value in the list of potential values
itm.symbol.color = {'RGB': [255, 0, 0, int(transVal)]}
itm.label = str(transVal) + '%'
l.symbology = sym
p.saveACopy(relpath + r'\\SavedOutput.aprx')