ListStyleItems (arcpy.mapping)

摘要

返回 StyleItem 对象的 Python 列表。然后可使用样式文件(.style.ServerStyle)中的已引用图例项更新布局中已存在的图例项。

讨论

ArcGIS for Desktop 中,样式项目存储在 .style 文件中。在 ArcGIS for Server 中,样式项目存储在 .ServerStyle 文件中。可以在样式管理器 窗口中对 .style 文件中的样式项目进行查看和管理。样式文件会被组织到具有唯一名称的不同子文件夹中,例如“标记符号”或“图例项”。目前,图例项是唯一一种可与其他 arcpy.mapping 方法配合使用的样式项目。图例项可定义图例中的图层显示方法。例如,它们可以存储诸如图例布局、图层名称符号和默认覆盖面等信息。

样式项目可通过 arcpy.mapping API 进行显示,因而用户可以控制图例项样式项目的外观。一般要求是能够控制新添加图例项的默认字号或字体。为实现这一要求,您必须先创建一个自定义图例项,然后通过 ListStyleItems 函数引用该图例项。接下来,您可以引用图例中显示的相应图层,然后使用其 updateItem 方法。下方提供了此工作流程代码示例。

语法

ListStyleItems (style_file_path, style_folder_name, {wildcard})
参数说明数据类型
style_file_path

A full path to an existing style (.style) or server style (.ServerStyle) file.

There are two additional shortcuts that don't require a full path. First, type the name of the ArcGIS system style file, for example, "ESRI.style" or "ESRI.ServerStyle" or "Transportation.style". The function will automatically search for the style in the appropriate ArcGIS installation style folder. Second, with ArcGIS for Desktop installations, you can use the keyword "USER_STYLE". This will automatically search the local user profile rather than requiring the full path. If the style file does not exist in either of these two known system locations, then the full path including the file extension must be provided, for example, "C:/Project/CustomStyles.style".

String
style_folder_name

The name of the style folder in the style file the way it appears in the Style manager window. Currently, only Legend Items can be used with other arcpy.mapping methods.

String
wildcard

A combination of asterisks (*) and characters can be used to help limit the results based on the style item name property.

(默认值为 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
5/10/2014