Ich denke, Ihre Anforderungen lassen sich am einfachsten und intuitivsten erfüllen, wenn Sie eine einzige Karte mit allen enthaltenen Layern haben und dann ein einfaches Python-Skript schreiben, das den Layer .visible verwendet, um Layer ein- und auszuschalten, bevor Sie jede Seite mit ExportToPDF exportieren .
PDFDocument kann dann verwendet werden, um die Seiten an eine einzelne PDF-Datei anzuhängen.
Die Technik wird in einem Esri-Blog namens Kombinieren datengesteuerter Seiten mit Python und arcpy.mapping beschrieben, das auch den folgenden Code enthält.
Sie können beispielsweise einen thematischen Atlas mit mehreren Seiten erstellen, auf denen auf jeder Seite ein anderes Thema angegeben ist. Im folgenden Beispiel wird ein ausgewähltes Paket vergrößert, die Sichtbarkeit verschiedener Ebenen umgeschaltet und das Layout für mehrere Themen exportiert, um einen Paketbericht mit einer Bodenkarte, einer Hochwasserkarte und einer Zonenkarte zu erstellen:
import arcpy, os
#Specify output path and final output PDF
outPath = r”C:MyProjectoutput\”
finalPdf = arcpy.mapping.PDFDocumentCreate(outPath + “ParcelReport.pdf”)
#Specify the map document and the data frame
mxd = arcpy.mapping.MapDocument(r”C:MyProjectMyParcelMap.mxd”)
df = arcpy.mapping.ListDataFrames(mxd, “Layers”)[0]
#Select a parcel using the LocAddress attribute and zoom to selected
parcelLayer = arcpy.mapping.ListLayers(mxd, “Parcels”, df)[0]
arcpy.SelectLayerByAttribute_management(parcelLayer, “NEW_SELECTION”, “”LocAddress” = ’519 Main St’”)
df.zoomToSelectedFeatures()
#Turn on visibility for each theme and export the page
lyrList = ["Soils", "Floodplains", "Zones"]
for lyrName in lyrList:
lyr = arcpy.mapping.ListLayers(mxd, lyrName, df)[0]
lyr.visible = True
#Export each theme to a temporary PDF and append to the final PDF
tmpPdf = outPath + lyrName + “_temp.pdf”
if os.path.exists(tmpPdf):
os.remove(tmpPdf)
arcpy.mapping.ExportToPDF(mxd, tmpPdf)
finalPdf.appendPages(tmpPdf)
#Turn off layer visibility and clean up for next pass through the loop
lyr.visible = False
del lyr, tmpPdf
del mxd, df, finalPdf