Używasz stron opartych na danych (DDP) do tworzenia zestawu map o tym samym zasięgu, ale różnych warstwach?

9

Czy można użyć narzędzia DDP (Data Driven Pages) w ArcMap lub ArcPy do stworzenia zestawu map o tym samym zasięgu, ale pokazujących różne warstwy?

Aby to wyjaśnić, regularnie tworzę duże zestawy map dla projektów w tej samej lokalizacji, często z tymi samymi warstwami podstawowymi, ale zmodyfikowane, aby skupić się na różnych aspektach w odpowiedniej części raportu, takich jak lokalizacje monitorowania, zagospodarowanie terenu, kluczowe funkcje itp., Które wszystkie wymagają utworzenia i utrzymywania oddzielnych plików .mxds.

System typu DDP pozwoliłby mi na użycie dynamicznego tekstu i zapewnienie standardowego szablonu / wyjścia, a także znacznie ułatwiłby życie podczas aktualizacji ogólnej liczby cyfr lub komentarza, ponieważ raport jest zapisywany w jednym pliku .mxd zamiast w wielu dla klient.

Korzystam z ArcMap 10.1, ale po przeczytaniu pomocy online ArcGIS DDP zakładam, że musiałoby to być zrobione z ArcPy, ponieważ nie byłem w stanie wymyślić, jak to zrobić w ArcMap. Wiem, że QGIS ma wtyczkę Atlas , chociaż nie znam jej możliwości, ale chętnie wykorzystam ją jako alternatywę.

MAJ742
źródło
1
Myślę, że szukasz skryptów do zmiany dokumentu mapy w Pythonie za pomocą zestawu narzędzi arcpy.mapping . Zobacz odniesienie do tworzenia kompletnych książek mapowych , a dokładniej w dokumencie „Prosta książka mapowa serii referencyjnych”.
RyanKDalton

Odpowiedzi:

4

Oto moje myślenie w pseudokodzie: dostaniesz swój MapDocument, następnie ListDataFrames, a następnie ListLayers. Następnie powinieneś być w stanie iterować przez warstwy, włączać właściwość Widoczność warstwy, ExportToPDF (lub cokolwiek innego), a następnie ponownie wyłączyć Widoczność i przejść do następnej warstwy. Jeśli chcesz pozostawić określone warstwy jako warstwy podstawowe, być może możesz zgrupować te, które chcesz zmienić dla każdej mapy, i przełączać widoczność tylko dla tych, testując IsGroupLayer = True? Może ktoś inny ma przykładowy kod ...

neuhausr
źródło
Nigdy nie znalazłem wbudowanego rozwiązania Arc, ale kolega opracował teraz skrypt Pythona dla procesu zgodnego z sugerowaną przez Ciebie podstawową strukturą. Skrypt korzysta z grup, aby utworzyć nową stronę w pliku pdf i można go połączyć z DDP, aby utworzyć mapbook z zestawem map dla wielu witryn.
MAJ742,
5

Metoda bez kodu

Po włączeniu stron opartych na danych można określić zapytanie definicji zależne od numeru strony. Wystarczy użyć tego zapytania, aby ukryć wszystkie elementy przed warstwami, których nie chcesz wyświetlać.

  1. Ustaw ramki mapy tak, aby znajdowały się w tej samej lokalizacji, ale z polem dla numeru strony. Skonfiguruj strony z danymi z numerem strony jako polem nazwy.
  2. Jeśli chcesz włączyć warstwę dla określonej strony, dodaj atrybut „page” do jej tabeli i ustaw odpowiedni numer strony.
  3. Dodaj zapytanie dotyczące definicji strony do konkretnej warstwy za pomocą nowo utworzonego pola.

Po wybraniu strony żądane warstwy będą widoczne na podstawie zapytania dotyczącego definicji strony.

Matthew Snape
źródło
2
Myślę, że zapytania dotyczące definicji strony działają w niektórych przypadkach dobrze, ale problem polega na tym, że musisz dodać odpowiedni numer strony do każdego atrybutu w tabeli danych i nie możesz wyświetlić tej samej funkcji na wielu stronach, ponieważ możesz odwoływać się tylko do jednej strona na raz
MAJ742,