操作方法

如何在具有多个数据框的地图文档中使用和导出数据驱动页面

Last Published: July 11, 2020

摘要

数据驱动页面要求使用索引图层来确定每个页面的数据框范围。 索引图层可以是地图上用于定义范围的任何图层,具体取决于要素图层。 可以进一步增强“数据驱动”页面的功能,以使用 arcpy.mapping 模块在包含多个数据框的地图文档中进行导出和使用。

本文提供了使用和导出具有多个数据框的数据驱动页面的步骤。

过程

  1. 导入所需的模块。
import os import arcpy from arcpy import mapping
  1. 指定包含图层和数据框的地图文档。
mxd = arcpy.mapping.MapDocument("CURRENT") masterFrame = arcpy.mapping.ListDataFrames(mxd)[0] Frame2 = arcpy.mapping.ListDataFrames(mxd)[1] Frame3 = arcpy.mapping.ListDataFrames(mxd)[2]
  1. 打印页数。
print mxd.dataDrivenPages.pageCount
  1. 创建一个循环以遍历所有可用框,然后将页面导出到所需位置。 代码片段还将框的范围设置为主框范围。
for pageNum in range(1, mxd.dataDrivenPages.pageCount): mxd.dataDrivenPages.currentPageID = pageNum + 1 Frame2.extent = masterFrame.extent Frame3.extent = masterFrame.extent mxd.dataDrivenPages.currentPageID = pageNum print pageNum OutF = os.path.join("<folder_location>" ,str(pageNum) + ".pdf" ) arcpy.mapping.ExportToPDF(mxd, OutF)
注意: 由于框范围被设置为复制主范围,因此要使数据框可见,数据必须在地图上的相同范围内可用。

以下为完整代码:

import os import arcpy from arcpy import mapping mxd = arcpy.mapping.MapDocument("CURRENT") masterFrame = arcpy.mapping.ListDataFrames(mxd)[0] Frame2 = arcpy.mapping.ListDataFrames(mxd)[1] Frame3 = arcpy.mapping.ListDataFrames(mxd)[2] print mxd.dataDrivenPages.pageCount for pageNum in range(1, mxd.dataDrivenPages.pageCount): mxd.dataDrivenPages.currentPageID = pageNum + 1 Frame2.extent = masterFrame.extent Frame3.extent = masterFrame.extent mxd.dataDrivenPages.currentPageID = pageNum print pageNum OutF = os.path.join("C:/temp" ,str(pageNum) + ".pdf" ) arcpy.mapping.ExportToPDF(mxd, OutF)

文章 ID: 000022852

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项