applySymbolFromGallery
汇总
Symbol 类用于访问基本符号属性和方法。
讨论
Symbol 类表示与渲染器关联的符号。该类显示了基本的通用助手成员集,可应用于点、线和面符号。更新符号最简单的方式是使用 applySymbolFromGallery 方法。您可以更改符号以使用与工程一同保存的符号库中现有的已命名符号。
color 和 outlineColor 属性返回一个 Python 字典。字典拥有与颜色模型名称匹配的单个键,且其值为颜色属性列表。例如,这是红色的 RGB 制图表达: {'RGB' : [255, 0, 0, 100]} 。属性根据颜色模型变化。所有颜色模型的最后一个参数是 alpha 或不透明度值。alpha 或不透明度值的行为与应用程序用户界面中的透明度相反。如果在字典中将该值设为 100 ,则其会在功能区的 透明度 控件中或在 符号系统 窗格中显示为 0% 。
您可以读取所有受支持颜色模型的值,但只能修改一个子集。以下是受支持的颜色模型列表:
{'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 |
代码示例
以下脚本将名为 Extent Transparent 的符号从工程中的库应用至面图层。接下来,它会更改一些符号属性,例如 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"))