Tôi nghĩ rằng các yêu cầu của bạn sẽ được đáp ứng một cách dễ dàng và trực quan nhất bằng cách có một bản đồ duy nhất với tất cả các lớp được bao gồm và sau đó viết một tập lệnh Python đơn giản sử dụng lớp .visible để bật / tắt các lớp trước khi xuất từng trang bằng cách sử dụng ExportToPDF .
PDFDocument sau đó có thể được sử dụng để nối các trang vào một tệp PDF.
Kỹ thuật này được mô tả trong một blog Esri có tên Kết hợp các trang hướng dữ liệu với Python và arcpy.micking cũng bao gồm mã bên dưới.
Ví dụ: bạn có thể tạo một tập bản đồ theo chủ đề với nhiều trang chỉ định một chủ đề khác nhau trên mỗi trang. Ví dụ sau đây phóng to một bưu kiện đã chọn, bật tắt khả năng hiển thị lớp khác nhau và xuất bố cục cho nhiều chủ đề để tạo báo cáo bưu kiện với bản đồ đất, bản đồ lũ lụt và bản đồ phân vùng:
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