ArcGIS for Desktop

  • 文档
  • 合约
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS for Desktop

全面的专业性 GIS

ArcGIS for Server

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 合约
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

帮助

  • 主页
  • 入门
  • 制图
  • 分析
  • 管理数据
  • 工具
  • 更多...

ListBookmarks

  • 摘要
  • 讨论
  • 语法
  • 代码实例

摘要

返回指定元组的 Python 列表,通过元组可访问各个空间书签名称和范围信息。

讨论

ListBookmarks 始终返回指定元组的 Python 列表。每个元组提供字符串型的书签名称和 Extent 对象的书签范围。要返回特定元组,在列表上必须使用索引值(例如,bkmk = arcpy.mapping.ListBookmarks(mxd)[0])。列表上的 For 循环提供简单的机制迭代列表中的每个元组(例如,for bkmk in arcpy.mapping.ListBookmarks(mxd):)。

在 name 属性上使用通配符并且不区分大小写。通配符字符串 "so*" 将返回名为 South East 的空间书签。可在脚本语法中跳过通配符,实现方式包括传递空字符串 ("")、星号 (*),或输入 wildcard=None,如果通配符是语法中的最后一个可选参数,也可不输入任何内容。

由于名称属性实际上是识别空间范围的唯一可行方式,因此应避免在单个数据框内使用多个具有相同名称的空间书签。如果书签在不同的数据框中,可具有相同名称。

语法

ListBookmarks (map_document, {wildcard}, {data_frame})
参数说明数据类型
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 列表。

  • 范围 —GP 范围对象
  • 名称 —表示空间书签名称的字符串

代码实例

ListBookmarks 示例 1

此脚本将输出名为 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
ListBookmarks 示例 2

与示例 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
ListBookmarks 示例 3

本例将地图文档中的每个书签都转换为一个要素。生成的要素类可用于各种工作流,包括用作数据驱动页面索引图层以创建地图册。

import arcpy, os

# The map with the bookmarks
mxd = arcpy.mapping.MapDocument(r"C:\Project\Counties.mxd")

# The output feature class to be created -
# This feature class will store the bookmarks as features
outFC = r'C:\Project\Counties.gdb\Bookmarks'

# A template feature class that contains the attribute schema
# Including a "Name" field to store the bookmark name
template = r'C:\Project\Counties.gdb\Template'

if arcpy.Exists(outFC):
    arcpy.Delete_management(outFC)
arcpy.CreateFeatureclass_management(os.path.dirname(outFC),
                                    os.path.basename(outFC), 
                                    "POLYGON", template, 
                                    spatial_reference=template)

cur = arcpy.da.InsertCursor(outFC, ["SHAPE@", "Name"])
array = arcpy.Array()
for bkmk in arcpy.mapping.ListBookmarks(mxd):
    array.add(arcpy.Point(bkmk.extent.XMin, bkmk.extent.YMin))
    array.add(arcpy.Point(bkmk.extent.XMin, bkmk.extent.YMax))
    array.add(arcpy.Point(bkmk.extent.XMax, bkmk.extent.YMax))
    array.add(arcpy.Point(bkmk.extent.XMax, bkmk.extent.YMin))
    # To close the polygon, add the first point again
    array.add(arcpy.Point(bkmk.extent.XMin, bkmk.extent.YMin))
    cur.insertRow([arcpy.Polygon(array), bkmk.name])
    array.removeAll()
有关此主题的反馈?

ArcGIS for Desktop

  • 主页
  • 文档
  • 合约
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | 隐私政策 | 法律声明