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.
Eine vollständigere Kartensammlung weist eine Titelseite und eine Kartenindex- bzw. Übersichtsseite auf. Dies können Sie erreichen, indem Sie eine ArcMap-Kartenserie und ein arcpy.mapping-Python-Skript verwenden. Verwenden Sie die Kartenserie für ein einzelnes Kartendokument (einzelnes Layout), um die Kartenseiten für die Sammlung zu erstellen, während ein anderes Kartendokument zum Erstellen der Kartenindexseite verwendet werden kann. Sie könnten auch noch ein weiteres Kartendokument zum Erstellen der Titelseite nutzen oder andere Software zum Erstellen eines PDF-Dokuments für die Titelseite verwenden. Mit arcpy.mapping können Sie alle diese Elemente in einer einzelnen Kartensammlung zusammenfassen.
Das Beispiel oben zeigt eine topographische Kartensammlung für Arenac County, Michigan. Diese Karte enthält eine Titelseite und eine Übersichtskartenseite. Sie können dieses Dokument mit der Funktion "Kartenserie" und einem arcpy.mapping-Python-Skript erstellen.
Weitere Informationen finden Sie unter Erstellen von Kartenserien.
Dieses Beispiel umfasst die folgenden Annahmen:
- Sie verfügen bereits über ein Kartendokument, in dem Kartenserien aktiviert sind.
In diesem Codebeispiel wird mit der einfachen Referenzserien-Kartensammlung aus Erstellen von Kartensammlungen mit ArcGIS als Beispiel gearbeitet.
Sie können diese Kartensammlung erneut erstellen, indem Sie die Schritte folgender Hilfethemen ausführen: - Sie verfügen über eine PDF-Datei für die Titelseite einer Kartensammlung.
- Sie verfügen über eine PDF-Datei mit der Übersichtskartenseite.
Da in der Kartensammlung Seitenzahlen angezeigt werden, sollten Sie sicherstellen, dass für die Seitenzahl der Anfangsseite der Kartenserie alle vorangehenden Seiten der endgültigen Kartensammlung berücksichtigt werden. In diesem Beispiel gehen den Kartenseiten zwei Seiten voraus. Daher beginnen die Kartenseiten bei Seite 3. Stellen Sie sicher, dass Sie im Dialogfeld Einrichten der Kartenserie für Seitenzahl der Anfangsseite den Wert 3 eintragen.
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.
Mit diesem Skript wird eine Kartensammlung in PDF exportiert, wobei Titel- und Übersichtsseiten hinzugefügt werden.
import arcpy, os
# Create an output directory variable
#
outDir = r"C:\temp\MBExample\final_output"
# Create a new, empty pdf document in the specified output directory
#
finalpdf_filename = outDir + r"\FinalMB.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 index 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.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)
# 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, tempMap, tempDDP
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 wird das Dokument "ArenacDDP.mxd" verwendet.
Weitere Informationen finden Sie in den arcpy.mapping-Themen zur MapDocument-Klasse und DataDrivenPages-Klasse.
Zuletzt werden die Eigenschaften aktualisiert, und nach dem Speichervorgang wird die endgültige PDF-Datei geschlossen.