方法
データ ドリブン ページでは、インデックス レイヤーを使用して各ページのデータ フレームの範囲を決定する必要があります。 フィーチャ レイヤーに応じて、範囲の定義に使用するマップのどのレイヤーでもインデックス レイヤーにすることができます。 データ ドリブン ページの機能をさらに強化して、arcpy.mapping モジュールを使ったエクスポートや、複数のデータ フレームを含むマップ ドキュメントでの使用を可能にすることができます。
この記事では、複数のデータ フレームがあるデータ ドリブン ページを使用してエクスポートする手順を説明します。
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("<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
ArcGIS エキスパートのサポートを受ける
今すぐチャットを開始