ListBookmarks (arcpy.mapping)
摘要
返回指定元组的 Python 列表,通过元组可访问各个空间书签名称和范围信息。
讨论
ListBookmarks 始终返回指定元组的 Python 列表。每个元组提供字符串型的书签名称和 Extent 对象的书签范围。要返回特定元组,在列表上必须使用索引值(例如,bkmk = arcpy.mapping.ListBookmarks(mxd)[0])。列表上的 For 循环提供简单的机制迭代列表中的每个元组(例如,for bkmk in arcpy.mapping.ListBookmarks(mxd):)。
在 name 属性上使用通配符并且不区分大小写。通配符字符串 "so*" 将返回名为 South East 的空间书签。可在脚本语法中跳过通配符,实现方式包括传递空字符串 ("")、星号 (*),或输入 wildcard=None;如果通配符是语法中的最后一个可选参数,也可不输入任何内容。
由于名称属性实际上是识别空间范围的唯一可行方式,因此应避免在单个数据框内使用多个具有相同名称的空间书签。如果书签在不同的数据框中,可具有相同名称。
语法
参数 | 说明 | 数据类型 |
map_document |
A variable that references a MapDocument object. | MapDocument |
wildcard |
A combination of asterisks (*) and characters can be used to help limit the results. It is used to filter spatial bookmark names. (默认值为 None) | String |
data_frame |
A variable that references a DataFrame object. This is used to find a spatial bookmark associated with a specific data frame. (默认值为 None) | DataFrame |
数据类型 | 说明 |
List |
指定元组的 Python 列表。
|
代码实例
此脚本将输出名为 Transportation 的数据框中各个空间书签的名称。使用空白字符串跳过通配符参数。
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Transportation")[0]
for bkmk in arcpy.mapping.ListBookmarks(mxd, "", df):
print bkmk.name
del mxd
与示例 1 类似,以下脚本将循环 Transportation 数据框中的每个书签,设置数据框范围并将数据框导出为 JPEG 文件。
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Transportation")[0]
for bkmk in arcpy.mapping.ListBookmarks(mxd, data_frame=df):
df.extent = bkmk.extent
outFile = r"C:\Project\Output\\" + bkmk.name + ".jpg"
arcpy.mapping.ExportToJPEG(mxd, outFile, df)
del mxd