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 einer Kartenserie.
Dieses Beispiel umfasst die folgenden Annahmen:
- Sie verfügen über ein Kartendokument mit aktivierten Kartenserien.
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 eine PDF-Datei für die Titelseite einer Kartensammlung.
- Sie verfügen über eine PDF-Datei mit der Übersichtskartenseite.
Da die Kartensammlung Seitenzahlen beinhaltet, sollten Sie sicherstellen, dass bei der Seitenzahl der Anfangsseite für Kartenserien alle vorherigen Seiten der finalen Kartensammlung berücksichtigt werden. In diesem Beispiel gibt es zwei Seiten vor den Kartenseiten. Daher beginnen die Kartenseiten mit Seite 3. Stellen Sie sicher, dass als Seitenzahl der Anfangsseite im Dialogfeld Einrichtung der Kartenserie 3 festgelegt ist.
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.
Dieses Skript exportiert eine Kartensammlung mit Titel- und Übersichtsseiten in eine PDF.
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
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 ist dieses Dokument ArenacDDP.mxd.
Weitere Informationen finden Sie unter MapDocument-Klasse und DataDrivenPages-Klasse von arcpy.mapping.
Mithilfe des Codes werden schließlich die Eigenschaften aktualisiert und die finale PDF gespeichert und geschlossen.