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

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

PictureElement

  • 摘要
  • 讨论
  • 属性
  • 代码示例

摘要

用于访问图片属性,从而在页面布局中重新定位图片并获取和设置其数据源。

讨论

PictureElement 对象代表已插入到页面布局中的栅格或影像。ListLayoutElements 函数将返回页面布局元素对象的 Python 列表。随后遍历列表中的每个项目,或指定一个索引号以引用具体的页面元素对象。要返回一个只包含 PictureElements 的列表,应对 element_type 参数使用 PICTURE_ELEMENT 常量。可使用通配符根据元素名称优化搜索过程。

建议您为每个页面布局元素赋予唯一的名称,以便在 Python 中进行区分。X 和 Y 值以元素的锚点位置为基础,可通过 ArcMap 中元素属性对话框的大小和位置选项卡进行设置。

PictureElement 对象的 sourceImage 属性用于读取或修改图片源位置。如果您计划用不同大小和纵横比的图片替换原有图片,则应创建设置了图片高度和宽度的地图文档,其中的高度和宽度代表所有图片在页面布局中占据的范围。使用 sourceImage 属性替换某个图片且新图片具有不同的横纵比时,将使用最长边调整新图片,使其适应原始图片区域。替换的图片绝不会超过原始定义的尺寸。您最好还设置锚点位置,以便所有新图片都相对于该位置进行调整。如果不希望图片偏斜,请确保选中保留纵横比选项。

属性

属性说明数据类型
elementHeight
(可读写)

元素的高度(以页面单位计)。分配或报告的单位为页面单位。

Double
elementPositionX
(可读写)

数据框元素的锚点位置的 x 位置。分配或报告的单位为页面单位。

Double
elementPositionY
(可读写)

数据框元素的锚点位置的 y 位置。分配或报告的单位为页面单位。

Double
elementWidth
(可读写)

元素的宽度(以页面单位计)。分配或报告的单位为页面单位。

Double
name
(可读写)

元素的名称。

String
sourceImage
(可读写)

用于表示到图像数据源的路径的文本字符串。

String
type
(只读)

返回任何给定页面布局元素的元素类型。

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

代码示例

PictureElement 示例 1

以下脚本将按名称查找影像,并将其数据源设置为新路径。

import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for elm in arcpy.mapping.ListLayoutElements(mxd, "PICTURE_ELEMENT"):
    if elm.name == "Photo":
        elm.sourceImage = r"C:\Project\Data\NewPhoto.bmp"
mxd.save()
del mxd
PictureElement 示例 2

以下脚本显示在启用了“数据驱动页面”的地图文档中,各页面上的不同图片如何进行切换。每个页面上有不同的图片。这些图片命名为 Photo1.png、Photo2.png、Photo3.png 等,以匹配相应的页码。

import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
pict = arcpy.mapping.ListLayoutElements(mxd, "PICTURE_ELEMENT", "photo")[0]
for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):
    mxd.dataDrivenPages.currentPageID = pageNum
    pict.sourceImage = r"C:\Project\Data\Photo{0}.png".format(pageNum)
    print("Exporting page {0} of {1}"
          .format(mxd.dataDrivenPages.currentPageID,
                  mxd.dataDrivenPages.pageCount))
    arcpy.mapping.ExportToPDF(mxd, r"C:\Project\Page{0}.pdf".format(pageNum))
del mxd

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

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

关于 Esri

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