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 bei Anzeige der Seitenzahlen ebenfalls sicher, dass Sie die korrekten Textelemente verwenden. Verwenden Sie nicht die Option Seite der Kartenserie mit Gesamtanzahl, da bei der Gesamtzahl lediglich die Seiten der Kartenserie berücksichtigt werden. Andere Seiten wie Titel- oder Berichtsseiten, die Sie ebenfalls in die Kartensammlung aufnehmen, werden nicht mitgezählt. Verwenden Sie stattdessen die Option Seitenzahl der Seite einer Kartenserie, und kombinieren Sie den dynamischen Text mit dem statischem Text für die Anzeige der Gesamtzahl an Seiten, z. B. Seite <dyn type="page" property="number"/> von 26.
Sobald Sie das Kartendokument und die PDF-Dateien vorbereitet haben, können Sie den unten stehenden Code ausführen, um eine endgültige PDF-Datei der Kartensammlung zu erstellen. Sie können den Code im Python-Fenster oder in einer eigenständigen Python-Anwendung ausführen.
Obwohl der Code in diesen Themen speziell für die obige beispielhafte 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
Mit den ersten Codezeilen werden die benötigten Module importiert, und es wird eine Variable für das Ausgabeverzeichnis der endgültigen PDF-Datei der Kartensammlung sowie ein neues, leeres PDF-Dokument im angegebenen Ausgabeverzeichnis erstellt. Diese PDF-Datei stellt die endgültige Ausgabe des Skripts dar.
Weitere Informationen finden Sie im arcpy.mapping-Thema zur PDFDocument-Klasse.
Mit den nächsten Codezeilen werden der endgültigen PDF-Datei die Titelseite und die Übersichtskartenseite hinzugefügt. In diesem Beispiel wird angenommen, dass Sie bereits über PDF-Dokumente für die Titel- und Übersichtskartenseiten verfügen.
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 in den arcpy.mapping-Themen zur MapDocument-Klasse und DataDrivenPages-Klasse.
Fügen Sie danach die PDF-Seiten mit den Berichten und Diagrammen in die finale PDF ein.
Zuletzt werden die Eigenschaften aktualisiert, und nach dem Speichervorgang wird die endgültige PDF-Datei geschlossen.