Jak ustawić Map Book stron z tym samym obszarem pokazanym, ale włączonymi / wyłączonymi różnymi warstwami?


9

W ESRI Map Book najlepiej nadaje się do szeregu funkcji, z których każda ma własną stronę. Pozwala wybrać obiekt i wygenerować stronę książki z mapami dla każdej funkcji, w tym wszelkie dodatkowe informacje, które chcesz dodać do każdej strony za pomocą dynamicznego tekstu, wykresów itp.

Czy istnieje alternatywa dla powiedzmy serii stron pokazujących DOKŁADNY ten sam obszar, ale z włączonymi i wyłączonymi różnymi warstwami? Mamy dokument dotyczący ulepszeń kapitału, który muszę stworzyć, pokazując granice miasta na każdej stronie. Na jednej stronie wymieniono wszystkie posterunki policji i straży pożarnej, na innej pokazano proponowane systemy wodne, na innej pokazano drogi ekspresowe i autostrady oraz prace prowadzone w pobliżu lub na nich ... itd., Na muzeum.

Czy istnieje jakiś sposób, aby to skonfigurować, aby NIE musiałem tworzyć osobnego MXD dla każdej strony mapy tego dokumentu?


jaka wersja pulpitu? narzędzia zmieniły się nieco w każdej wersji.
Brad Nesom,

ArcGIS for Desktop Advanced 10.2.2
randomblink

Odpowiedzi:


10

Byłem w stanie to zrobić, kiedy miałem je dla ArcGIS 9.3 i działa bardzo dobrze. Nie wiem, czy to będzie działać z ArcGIS 10.0 lub nowszym, jak podano na ich stronie internetowej, ale spróbuję.

ArcMapBook

Edycja:
Można tego dokonać, po prostu tworząc prostokątną stronę dla każdego zestawu warstw ułożonych bezpośrednio jeden na drugim. Nazwij każdą stronę osobno i przypisz wartość każdej warstwie do wyświetlenia w ramce.
Musisz także przypisać wartości atrybutów do elementów, które pojawiają się tylko na określonych stronach.
Następnie użyj definicji strony, aby ograniczyć obiekty do nazw stron.
We właściwościach warstwy w definicji Strona zapytania> definicja strony.
pagedef

Istnieje opcja włączenia dopasowania / niedopasowania oraz nazwy pola.
Włączone
Istnieją dość nieskończone możliwości kodowania danych do pracy w ramach.
Również jeśli masz elementy, które chcesz wyświetlać na wszystkich stronach, po prostu tego nie mają.


1
To nadal działa z 10.1, 10.2
Brad Nesom

4

Myślę, że twoje wymagania byłyby najłatwiej i intuicyjnie spełnione poprzez posiadanie jednej mapy ze wszystkimi warstwami, a następnie napisanie prostego skryptu Python, który używa warstwy .visible do włączania / wyłączania warstw przed eksportowaniem każdej strony za pomocą ExportToPDF .

PDFDocument można następnie wykorzystać do dołączenia stron do jednego pliku PDF.

Technikę opisano na blogu Esri o nazwie Łączenie stron opartych na danych z Pythonem i arcpy.mapping, który zawiera również poniższy kod.

Na przykład możesz utworzyć atlas tematyczny z wieloma stronami, określającymi inny motyw na każdej stronie. Poniższy przykład przybliża wybraną działkę, przełącza widoczność na różnych warstwach i eksportuje układ dla wielu motywów, aby utworzyć raport działki z mapą gleby, mapą powodziową i mapą strefową:

import arcpy, os

#Specify output path and final output PDF
outPath = r”C:MyProjectoutput\”
finalPdf = arcpy.mapping.PDFDocumentCreate(outPath + “ParcelReport.pdf”)

#Specify the map document and the data frame
mxd = arcpy.mapping.MapDocument(r”C:MyProjectMyParcelMap.mxd”)
df = arcpy.mapping.ListDataFrames(mxd, “Layers”)[0]

#Select a parcel using the LocAddress attribute and zoom to selected
parcelLayer = arcpy.mapping.ListLayers(mxd, “Parcels”, df)[0]
arcpy.SelectLayerByAttribute_management(parcelLayer, “NEW_SELECTION”, “”LocAddress” = ’519 Main St’”)
df.zoomToSelectedFeatures()

#Turn on visibility for each theme and export the page
lyrList = ["Soils", "Floodplains", "Zones"]
for lyrName in lyrList:
     lyr = arcpy.mapping.ListLayers(mxd, lyrName, df)[0]
     lyr.visible = True

     #Export each theme to a temporary PDF and append to the final PDF
     tmpPdf = outPath + lyrName + “_temp.pdf”
     if os.path.exists(tmpPdf):
          os.remove(tmpPdf)
     arcpy.mapping.ExportToPDF(mxd, tmpPdf)
     finalPdf.appendPages(tmpPdf)

     #Turn off layer visibility and clean up for next pass through the loop
     lyr.visible = False
     del lyr, tmpPdf
del mxd, df, finalPdf

Czy istnieje sposób, aby to zrobić dla dużej liczby plików kształtów? Nigdy tak naprawdę nie korzystałem z Pythona, ale zakładam, że lyrList ma warstwy, które będą cyklicznie przewijane. Mam 121 różnych warstw o ​​nazwach takich jak DA_1, DA_2, DA_3 itp. Czy istnieje sposób na ich załadowanie bez nazywania ich indywidualnie?
The Silent Cartographer

@TheSilentCartographer Twoja lista laters może być tak długa, jak chcesz. Będzie musiał zawierać nazwy osób, dla których chcesz utworzyć plik PDF. Mogą istnieć różne sposoby dostania się tych nazw na listę.
PolyGeo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.