Ben tüm gereksinimleri dahil tek bir haritaya sahip ve daha sonra ExportToPDF kullanarak her sayfayı vermeden önce katmanları açmak / kapatmak için katman .visible kullanan basit bir Python komut dosyası yazmak için gereksinimlerinizi en kolay ve sezgisel olarak karşılanacağını düşünüyorum .
Daha sonra PDFDocument , sayfaları tek bir PDF dosyasına eklemek için kullanılabilir.
Teknik, Esri blogunda Veriye Dayalı Sayfaları Python ve arcpy.mapping ile Birleştirerek aşağıdaki kodu da içerir.
Örneğin, her sayfada farklı bir tema belirten birden çok sayfalı tematik bir atlas oluşturabilirsiniz. Aşağıdaki örnek, seçilen bir parseli yakınlaştırır, farklı katman görünürlüğü arasında geçiş yapar ve toprak haritasına, taşkın haritasına ve imar haritasına sahip bir parsel raporu oluşturmak için birden fazla temanın düzenini dışa aktarır:
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