ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

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

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

ListLayoutElements

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

摘要

返回地图文档 (.mxd) 布局中布局元素的 Python 列表。

讨论

ListLayoutElements 始终返回 Python 列表对象,即使仅返回一个页面元素。要返回要素对象,在列表上必须使用索引值(例如,elm = arcpy.mapping.ListLayoutElements(mxd)[0])。列表上的 For 循环提供简单的机制迭代列表中的每个项目(例如,for elm in arcpy.mapping.ListLayoutElements(mxd):)。

ListLayoutElements 仅返回来自页面布局的元素,而不是可能存在于数据框中的地图注记元素。

每个页面元素都具有 name 属性,可在 ArcMap 中的元素属性对话框(位于大小和位置选项卡内)中设置此属性. 地图文档的作者应负责确保每个页面元素被赋予唯一名称,以便可唯一识别元素。如果两个元素有相同名称,则没有办法确定要引用的是哪个元素。

ListLayoutElements 也会将元素组里的元素返回到平面列表。这使您可以方便地搜索和替换文本字符串,例如不必通过组元素结构进行浏览。

可通过传送空字符串 ("") 或输入 element_type=None 直接跳过 element_type 参数。

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

有关详细信息,请参阅以下元素对象:DataFrame、GraphicElement、LegendElement、MapsurroundElement、PictureElement 和 TextElement。

语法

ListLayoutElements (map_document, {element_type}, {wildcard})
参数说明数据类型
map_document

引用 MapDocument 对象的变量。

MapDocument
element_type

代表用于过滤已返回元素列表的元素类型的字符串。

  • DATAFRAME_ELEMENT —数据框元素
  • GRAPHIC_ELEMENT —图形元素
  • LEGEND_ELEMENT —图例元素
  • MAPSURROUND_ELEMENT —地图整饰要素元素
  • PICTURE_ELEMENT —图片元素
  • TEXT_ELEMENT —文本元素

(默认值为 None)

String
wildcard

星号 (*) 和字符的组合可用于帮助限制生成的结果。

(默认值为 None)

String

返回值

数据类型说明
Object

页面布局元素的 Python 列表。可以返回的对象类型为 DataFrame、GraphicElement、LegendElement、MapsurroundElement、PictureElement 和 TextElement。

代码示例

ListLayoutElements 示例 1:

此脚本将搜索具有文本值 Old String 的全部文本元素(包括组中的元素),并使用 New String 替换该值。

import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
    if elm.text == "Old String":
        elm.text = "New String"
mxd.save()
del mxd
ListLayoutElements 示例 2:

以下脚本使用通配符来查找图片元素,然后更改图片的数据源。

import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for elm in arcpy.mapping.ListLayoutElements(mxd,"PICTURE_ELEMENT", "*logo*"):
    if elm.name == "CityLogo":
        elm.sourceImage = r"C:\Project\Data\Photo.bmp"
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

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

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2019 Esri. | 隐私政策 | 法律声明