applySymbolFromGallery
Краткая информация
Класс Symbol обеспечивает доступ к основным свойствам и методам символа.
Обсуждение
Класс Symbol представляет символ, связанный со способом отображения. Этот класс обеспечивает основной типичный набор вспомогательных элементов, который может быть применен к точечным, линейным и полигональным символам. Наиболее простым способом обновления символа является использование метода applySymbolFromGallery. Вы можете изменить символ таким образом, чтобы он использовал существующий именованный символ, находящийся в галерее символов, сохраненной с проектом.
Свойства color и outlineColor возвращают словарь Python. Этот словарь имеет отдельный ключ, который соответствует имени цветовой модели, а значением является список цветовых свойств. Например, так выглядит RGB представление для красного: {'RGB' : [255, 0, 0, 100]}. Свойства изменяются в зависимости от цветовой модели. Последним параметром для всех цветовых моделей является альфа или значение непрозрачности. Альфа, или значение непрозрачности, имеет поведение, противоположное прозрачности в пользовательском интерфейсе приложения. Если вы зададите в словаре это значение равным 100, оно появится, как 0% в элементе управления transparency на ленте или на панели Символы.
Вы можете выполнять чтение всех поддерживаемых цветовых моделей, но изменять вы можете только поднабор. Ниже приведен список поддерживаемых цветовых моделей:
{'CMYK' : [Cyan, Magenta, Yellow, Black, Alpha]}– Чтение/Запись{'HSL' : [Hue, Saturation, Lightness, Alpha]}– Чтение/Запись{'HSV' : [Hue, Saturation, Value, Alpha]}– Чтение/Запись{'RGB' : [Red, Green, Blue, Alpha]}– Чтение/Запись{'Lab' : [Lightness, a, b, Alpha]}– Только чтение{'Grayscale' : [Gray, Alpha]}– Только чтение
Синтаксис
applySymbolFromGallery()
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
angle (Чтение / Запись) |
Получает и задает значение поворота для точечного символа. |
Double |
|
color (Чтение / Запись) |
Получает и задает цвет для точечного, линейного или полигонального символа, используя словарь Python. |
Dictionary |
|
name (Только для чтения) |
Получает имя, связанное с этим символом. Корректное значение доступно только в случае, если на символ ссылаются с помощью метода |
String |
|
outlineColor (Чтение / Запись) |
Получает и задает цвет для контура символа, используя словарь Python. |
Dictionary |
|
outlineWidth (Чтение / Запись) |
Получает и задает ширину контура символа. |
Double |
|
size (Чтение / Запись) |
Получает и задает размер точечного символа, ширину линейного символа или ширину контура полигонального символа. |
Double |
|
useRealWorldUnits (Чтение / Запись) |
Получает и задает свойство, отвечающее за использование реальных единиц измерения или единиц измерения страницы при отображении размера символа. Если установлено |
Boolean |
Методы
applySymbolFromGallery(wildcard, {index})
applySymbolFromGallery предоставляет механизм для установки символа на тот, который существует в системе или в галерее стилей проекта.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
wildcard |
Строка, используемая для поиска символов на основе его имени или значения тега. Поиск по части слова тоже работает. (Значение по умолчанию — None) |
String |
|
index (Дополнительный) |
Значение индекса в списке на основе количества возможных символов, которые возвращаются с одинаковым именем. (Значение по умолчанию — 0) |
Integer |
listSymbolsFromGallery({wildcard})
listSymbolsFromGallery предоставляет механизм для возвращения списка символов, которые существуют в системе или в галерее стилей проекта.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
wildcard (Дополнительный) |
Строка, используемая для поиска символов на основе его имени или значения тега. Поиск по части слова тоже работает. (Значение по умолчанию — None) |
String |
Пример кода
Следующий скрипт применяет символ с названием Экстент – Прозрачный из галереи в проекте с полигональным слоем. Далее, он изменяет несколько свойств символа, такие как color (используя цветовую модель RGB), outlineColor (используя цветовую модель CMYK) и size.
import arcpy, os, sys
relpath = os.path.dirname(sys.argv[0])
p = arcpy.mp.ArcGISProject(os.path.join(relpath, "Symbol.aprx"))
m = p.listMaps('Map')[0]
lyr = m.listLayers("Study Areas")[0]
sym = lyr.symbology
sym.renderer.symbol.applySymbolFromGallery("Extent Transparent Wide Gray")
sym.renderer.symbol.color = {'RGB' : [255, 0, 0, 60]}
sym.renderer.symbol.outlineColor = {'CMYK' : [25, 50, 75, 25, 100]}
sym.renderer.symbol.size = 3
lyr.symbology = sym
p.saveACopy(os.path.join(relpath, "SavedOutput.aprx"))
Следующий скрипт перебирает символы в галерее, имеющие одинаковое имя. Он выделяет нужный символ на основе свойства size и применяет этот символ к слою.
import arcpy, os, sys
relpath = os.path.dirname(sys.argv[0])
p = arcpy.mp.ArcGISProject(os.path.join(relpath, "Symbol.aprx"))
m = p.listMaps('Map')[0]
lyr = m.listLayers("Airports")[0]
sym = lyr.symbology
if sym.renderer.type == "SimpleRenderer":
airportSymList = sym.renderer.symbol.listSymbolsFromGallery("Airport")
for symbol in airportSymList:
if symbol.size == 14.0:
sym.renderer.symbol = symbol
lyr.symbology = sym
p.saveACopy(os.path.join(relpath, "SavedOutput.aprx"))