Verwenden Sie datengesteuerte Seiten (Data Driven Pages, DDP), um Kartensätze mit derselben Ausdehnung, aber unterschiedlichen Ebenen zu erstellen?


9

Ist es möglich, das DDP-Tool (Data Driven Pages) in ArcMap oder ArcPy zu verwenden, um eine Reihe von Karten mit demselben Umfang zu erstellen, die jedoch unterschiedliche Ebenen anzeigen?

Zur Verdeutlichung erstelle ich regelmäßig große Kartensätze für Projekte, die sich alle am selben Ort befinden, häufig mit denselben Basisschichten, aber geändert, um mich auf verschiedene Aspekte für den relevanten Abschnitt eines Berichts zu konzentrieren, z. B. Überwachung von Standorten, Landnutzung, Hauptmerkmalen usw., die alle Es müssen separate .mxds erstellt und verwaltet werden.

Ein System vom Typ DDP würde es mir ermöglichen, den dynamischen Text zu verwenden und eine Standardvorlage / -ausgabe zu gewährleisten. Es würde auch das Leben erheblich erleichtern, wenn eine allgemeine Ziffernnummer oder ein Kommentar aktualisiert wird, da ein Bericht in einer .mxd-Datei anstatt in einer für geschrieben wird ein Klient.

Ich verwende ArcMap 10.1, aber nachdem ich die Online-Hilfe zu ArcGIS DDP gelesen habe, gehe ich davon aus, dass dies mit ArcPy durchgeführt werden muss, da ich nicht herausfinden konnte, wie dies in ArcMap funktioniert. Ich bin mir bewusst, dass QGIS über das Atlas-Plugin verfügt , obwohl ich mit seinen Funktionen nicht so vertraut bin, es aber gerne als Alternative verwenden würde.


1
Ich denke, Sie suchen nach Skripten für Änderungen an Kartendokumenten in Python mit dem Toolset arcpy.mapping . Weitere Informationen zum Erstellen vollständiger Kartenbücher finden Sie im Dokument "Einfaches Kartenbuch für Referenzserien".
RyanKDalton

Antworten:


4

Hier ist mein Denken im Pseudocode: Sie würden Ihr MapDocument, dann ListDataFrames und dann ListLayers erhalten. Dann sollten Sie in der Lage sein, die Ebenen zu durchlaufen, die Sichtbarkeitseigenschaft der Ebene zu aktivieren, ExportToPDF (oder was auch immer), dann die Sichtbarkeit wieder auszuschalten und mit der nächsten Ebene fortzufahren. Wenn Sie bestimmte Ebenen als Basisebenen belassen möchten, können Sie möglicherweise die Ebenen, die Sie ändern möchten, für jede Karte gruppieren und nur die Sichtbarkeit für diese umschalten, indem Sie auf IsGroupLayer = True testen. Vielleicht hat jemand anderes ein aktuelles Codebeispiel ...


Ich habe nie eine integrierte Arc-Lösung dafür gefunden, aber ein Kollege hat jetzt ein Python-Skript für den Prozess entwickelt, der der von Ihnen vorgeschlagenen Grundstruktur folgt. Das Skript verwendet Gruppen, um eine neue Seite im PDF zu erstellen, und kann mit DDP kombiniert werden, um ein Kartenbuch mit einer Reihe von Karten für mehrere Websites zu erstellen.
MAJ742

5

Eine codefreie Methode

Wenn Sie datengesteuerte Seiten aktivieren, können Sie eine Definitionsabfrage angeben , die von der Seitenzahl abhängt. Verwenden Sie einfach diese Abfrage, um alle Features vor Ebenen auszublenden, die Sie nicht anzeigen möchten.

  1. Richten Sie Ihre Kartenrahmen so ein, dass sie sich am selben Ort befinden, jedoch mit einem Feld für die Seitenzahl. Richten Sie datengesteuerte Seiten mit der Seitenzahl als Namensfeld ein.
  2. Wenn Sie möchten, dass eine Ebene für eine bestimmte Seite aktiviert wird, fügen Sie der Tabelle ein "Seiten" -Attribut hinzu und setzen Sie die entsprechende Seitenzahl.
  3. Fügen Sie eine Seite Definitionsabfrage an die jeweilige Schicht mit Ihrem neu angelegten Feld.

Wenn die Seite ausgewählt ist, werden die gewünschten Ebenen basierend auf der Seitendefinitionsabfrage sichtbar.


2
Ich denke, dass Seitendefinitionsabfragen in einigen Fällen gut funktionieren, aber das Problem ist, dass Sie jedem Attribut in der Datentabelle die entsprechende Seitenzahl hinzufügen müssen und nicht dieselbe Funktion auf mehreren Seiten anzeigen können, da Sie nur auf eine verweisen können Seite zu einer Zeit
MAJ742
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.