ArcGIS enthält alle Werkzeuge, die Sie benötigen, um Kartensammlungen im gedruckten Format oder im Adobe PDF-Format zu erstellen. Eine Kartensammlung ist eine Sammlung von Seiten, die zusammen gedruckt oder exportiert werden. Viele der Seiten enthalten Karten, aber andere Seiten können auch Text, Tabelleninformationen, Inhaltstabellen oder Titelseiten und anderen Inhalt enthalten.
Viele Kartensammlungen enthalten Hilfsdokumente, also unterstützende Dokumente. Diese können Berichttext, Tabellen, Indizes und andere unterstützende Daten bereitstellen. Sie können diese Arten von Kartensammlungen mithilfe einer Kombination aus einer ArcMap-Kartenserie und einem arcpy.mapping-Python-Skript erstellen.
Das Beispiel oben zeigt eine topographische Kartensammlung für Arenac County, Michigan. Diese Kartensammlung enthält eine Reihe von unterstützenden Seiten mit Textdaten, Diagrammen und Tabellendaten. Sie können dieses Dokument mit der Funktion "Kartenserie" und einem arcpy.mapping-Python-Skript erstellen.
Weitere Informationen finden Sie unter Erstellen einer Kartenserie.
Dieses Beispiel umfasst die folgenden Annahmen:
- Sie verfügen über ein Kartendokument mit einer Kartenserie.
Dieses Codebeispiel funktioniert mit der einfachen in Erstellen von Kartensammlungen mit ArcGIS als Beispiel gezeigten Referenzserien-Kartensammlung.
Sie können diese Kartensammlung erneut erstellen, indem Sie die Schritte folgender Hilfethemen ausführen: - Sie verfügen über PDF-Dateien mit Berichten und Diagrammen.
- Sie verfügen über eine PDF-Datei für die Titelseite einer Kartensammlung.
- Sie verfügen über eine PDF-Datei mit der Übersichtskartenseite.
Da die Kartensammlung Seitenzahlen anzeigt, sollten Sie sicherstellen, dass die Seitenzahlen für Kartenserien die zusätzlichen Seiten für die Kartensammlung berücksichtigen. Hier sehen Sie beispielsweise eine Ansicht der Kartenserien-Index-Layer-Tabelle. PageNumber wurde erstellt und durch das Geoverarbeitungswerkzeug Grid_Index_Features bei der Erstellung des Gitters befüllt. Diese Seitenzahlen sind nicht korrekt, da Sie Seiten zwischen den Kartenseiten einfügen. Es muss ein neues Feld für Seitenzahlen erstellt werden. Die Werte müssen entsprechend befüllt werden. Hier wurde ein neues Feld, New PageNum, erstellt und mit Werten befüllt, die die einzufügenden Seiten berücksichtigen.
Stellen Sie sicher, dass Sie vor dem Erstellen der Kartenserie das richtige Feld für das Seitenzahlfeld auswählen.
Stellen Sie ferner sicher, dass Sie die richtigen Textelemente verwenden, wenn Sie Seitenzahlen verwenden. Verwenden Sie nicht Seite der Kartenserie mit Gesamtanzahl, da nur die Gesamtanzahl der Kartenserie berücksichtigt wird. Andere Seiten, wie Titel- oder Berichtsseiten, die in der finalen Kartensammlung enthalten sind, werden nicht berücksichtigt. Verwenden Sie stattdessen Seitenzahl der Seite einer Kartenserie, und kombinieren Sie diesen dynamischen Text mit statischem Text, der die Gesamtseitenzahl anzeigt, beispielsweise Seite <dyn type="page" property="number"/> von 26.
Sobald Sie über ein Kartendokument und PDF-Dateien verfügen, können Sie den Code unten ausführen, um die finale Kartensammlungs-PDF zu erstellen. Sie können den Code im Python-Fenster oder in einer eigenständigen Python-Anwendung ausführen.
Obwohl der spezielle Code in diesem Thema für das oben angegebene Beispiel für eine Kartensammlung gilt, können Sie die beschriebenen Verfahren und Tipps auch auf eigene Kartensammlungen anwenden.
Fügen Sie zusätzliche Seiten in eine Kartensammlungs-PDF ein.
import arcpy, os
# Create an output location variable
outDir = r"C:\temp\MBExample\final_output"
# Create a new, empty pdf document in the specified output location folder
finalpdf_filename = outDir + r"\ArenacMB.pdf"
if os.path.exists(finalpdf_filename):
os.remove(finalpdf_filename)
finalPdf = arcpy.mapping.PDFDocumentCreate(finalpdf_filename)
# Add the title page to the pdf
finalPdf.appendPages(r"C:\temp\MBExample\ancillary_pages\TitlePage.pdf")
# Add the overview map to the pdf
finalPdf.appendPages(r"C:\temp\MBExample\maps\IndexMap.pdf")
# Export the Data Driven Pages to a temporary pdf and then add it to the
# final pdf. Alternately, if your Data Driven Pages have already been
# exported, simply append that document to the final pdf.
#
mxdPath = r"C:\temp\MBExample\maps\ArenacDDP Reports.mxd"
tempMap = arcpy.mapping.MapDocument(mxdPath)
tempDDP = tempMap.dataDrivenPages
temp_filename = r"C:\temp\MBExample\temp_pdfs\tempDDP.pdf"
if os.path.exists(temp_filename):
os.remove(temp_filename)
tempDDP.exportToPDF(temp_filename, "ALL")
finalPdf.appendPages(temp_filename)
# Insert the pdf pages containing the reports and graphs into the final pdf
#
finalPdf.insertPages(r"C:\temp\MBExample\ancillary_pages\Report_pg4.pdf", 4)
finalPdf.insertPages(r"C:\temp\MBExample\ancillary_pages\Report_pg5.pdf", 5)
finalPdf.insertPages(r"C:\temp\MBExample\ancillary_pages\Report_pg7.pdf", 7)
# Update the properties of the final pdf
finalPdf.updateDocProperties(pdf_open_view="USE_THUMBS",
pdf_layout="SINGLE_PAGE")
# Save your result
finalPdf.saveAndClose()
# Delete variables
del finalPdf
Die ersten Codezeilen importieren die notwendigen Module, erstellen eine Ausgabeverzeichnisvariable, in der die finale Kartensammlungs-PDF gespeichert wird und erstellen im angegebenen Ausgabeverzeichnisordner ein neues, leeres PDF-Dokument. Diese PDF ist die finale Ausgabe für dieses Skript.
Weitere Informationen finden Sie in der PDFDocument-Klasse von arcpy.mapping.
Die nächsten Codezeilen fügen der finalen PDF die Titelseite und die Übersichtskartenseite hinzu. In diesem Beispiel wird davon ausgegangen, dass Sie über vorhandene PDF-Dokumente verfügen, die für Titel- und Übersichtskartenseiten verwendet werden können.
Der nächste Schritt besteht im Hinzufügen der Kartenseiten. Dies erfordert, dass Sie über ein Kartendokument mit aktivierter Kartenserie verfügen. In diesem Beispiel trifft das auf das Kartendokument "ArenacDDP-Berichte" zu.
Weitere Informationen finden Sie unter MapDocument-Klasse und DataDrivenPages-Klasse von arcpy.mapping.
Fügen Sie danach die PDF-Seiten mit den Berichten und Diagrammen in die finale PDF ein.
Mithilfe des Codes werden schließlich die Eigenschaften aktualisiert und die finale PDF gespeichert und geschlossen.