Como ativar o Map Book de páginas com a mesma área exibida, mas com diferentes camadas ativadas / desativadas?

9

No ESRI, um Map Book é mais adequado para uma série de recursos que cada um obtém sua própria página. Ele permite que você escolha um recurso e gere uma Página de livro de mapas para cada recurso, incluindo qualquer informação adicional que você deseja adicionar a cada página por meio de texto dinâmico, gráficos etc.

Existe uma alternativa para, por exemplo, uma série de páginas mostrando a mesma área EXATA, mas com camadas diferentes ativadas e desativadas? Temos um documento de Melhorias de Capital que preciso criar mostrando os Limites da Cidade em todas as páginas. Uma página tem todos os postos de polícia e bombeiros listados, outra mostra sistemas de água propostos, outra mostra vias expressas e rodovias e o trabalho está sendo feito próximo ou nelas ... etc.

Existe alguma maneira de configurar isso para que eu não precise criar um MXD separado para cada página de mapa deste documento?

randomblink
fonte
qual versão do desktop? as ferramentas mudaram um pouco em cada versão.
Brad Nesom
ArcGIS for Desktop Advanced 10.2.2
randomblink

Respostas:

10

Consegui fazer isso quando os tinha para o ArcGIS 9.3 e funciona muito bem. Não sei se isso funcionará com o ArcGIS 10.0 ou posterior, como indicado no site deles, mas eu tentaria.

ArcMapBook

Editar: Para
isso, basta criar uma página retangular para cada conjunto de camadas empilhadas diretamente umas sobre as outras. Nomeie cada página separadamente e atribua um valor a cada camada a ser mostrada no quadro.
Você também precisa atribuir valores de atributo a itens que aparecem apenas em páginas específicas.
Em seguida, use a definição da página para restringir objetos aos nomes das páginas.
Nas propriedades da camada na página de definição da consulta> definição da página.
pagedef

Existe uma opção para ativar a correspondência / não correspondência e um nome de campo.
ativado
Existem inúmeras possibilidades para codificar seus dados para trabalhar dentro da estrutura.
Além disso, se você tem itens que deseja mostrar em todas as páginas, eles simplesmente não têm esse recurso ativado.

PROBERT
fonte
11
Isso ainda funciona com 10.1, 10.2
Brad Nesom 6/14
4

Eu acho que seus requisitos seriam atendidos de maneira mais fácil e intuitiva por ter um único mapa com todas as camadas incluídas e, em seguida, escrever um script Python simples que use layer .visible para ativar / desativar camadas antes de exportar cada página usando ExportToPDF .

O PDFDocument pode então ser usado para anexar as páginas em um único arquivo PDF.

A técnica é descrita em um blog da Esri chamado Combinando Páginas Orientadas a Dados com Python e arcpy.mapping, que também inclui o código abaixo.

Por exemplo, você pode criar um atlas temático com várias páginas especificando um tema diferente em cada página. O exemplo a seguir amplia o zoom para um lote selecionado, alterna a visibilidade da camada diferente e exporta o layout para vários temas, a fim de criar um relatório de lotes com um mapa do solo, um mapa de inundação e um mapa de zoneamento:

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
PolyGeo
fonte
Haveria uma maneira de fazer isso para um grande número de arquivos de forma? Eu realmente nunca usei Python, mas presumo que o lyrList tenha as camadas que serão percorridas. Eu tenho 121 camadas diferentes, com nomes como DA_1, DA_2, DA_3 etc. Existe uma maneira de carregá-las sem nomeá-las individualmente?
The Silent Cartographer
@TheSilentCartographer Sua lista de participantes pode ser a que você quiser. Ele precisará conter os nomes daqueles para os quais você deseja criar um PDF. Pode haver várias maneiras como esses nomes entram na lista.
PolyGeo