동일한 영역을 표시하지만 다른 레이어를 켜거나 끄는 페이지의 맵 북을 만드는 방법은 무엇입니까?


9

ESRI에서 맵북은 각각 자체 페이지를 얻는 일련의 기능에 가장 적합합니다. 동적 텍스트, 차트 등을 통해 각 페이지에 추가하려는 추가 정보를 포함하여 기능을 선택하고 각 기능에 대한 맵북 페이지를 생성 할 수 있습니다.

같은 영역이지만 다른 레이어를 켜고 끄는 일련의 페이지에 대한 대안이 있습니까? 모든 페이지에 도시 경계를 표시하기 위해 작성해야하는 자본 개선 문서가 있습니다. 한 페이지에는 모든 경찰서와 소방서가 나열되어 있고, 다른 페이지에는 제안 된 수도 시스템, 다른 하나는 고속도로와 고속도로를 표시하고 근처 또는 그 근처에서 수행되는 작업 등을 광고 구역에 포함하고 있습니다.

내가 너무이를 설정하는 몇 가지 방법이 하지 마십시오 이 문서의 각지도 페이지에 대해 별도의 MXD을 생성해야는?


어떤 버전의 데스크톱? 도구는 각 버전에서 약간 변경되었습니다.
Brad Nesom

ArcGIS for Desktop Advanced 10.2.2
randomblink

답변:


10

ArcGIS 9.3 용으로 사용할 때이 작업을 수행 할 수 있었고 매우 잘 작동합니다. 이것이 웹 사이트에 명시된 ArcGIS 10.0 이상에서 작동하는지 모르겠지만 시도해 볼 것입니다.

ArcMapBook

편집 :
이것은 서로의 위에 직접 쌓인 각 레이어 세트에 대해 직사각형 페이지를 간단하게 만들어서 달성 할 수 있습니다. 각 페이지의 이름을 별도로 지정하고 프레임에 표시 할 각 레이어에 값을 지정하십시오.
또한 특정 페이지에만 나타나는 항목에 속성 값을 할당해야합니다.
그런 다음 페이지 정의를 사용하여 오브젝트를 페이지 이름으로 제한하십시오.
정의 쿼리 페이지> 페이지 정의의 레이어 속성에서.
pagedef

일치 / 일치하지 않음 및 필드 이름을 활성화하는 옵션이 있습니다.
가능
프레임 워크 내에서 작동하도록 데이터를 코딩 할 가능성은 무한합니다.
또한 모든 페이지에 표시하려는 항목이있는 경우 해당 항목을 활성화하지 않았습니다.


1
이것은 여전히 ​​10.1, 10.2에서 작동합니다
Brad Nesom

4

나는 당신의 요구가 사용하는 것을 간단한 파이썬 스크립트 작성 후 포함 된 모든 레이어를 하나의지도를함으로써 가장 쉽고 직관적으로 충족하고 거라고 생각 레이어 .visible 사용하여 각 페이지 내보내기 전에 온 / 오프 층 전환에 ExportToPDF을 .

그런 다음 PDFDocument 를 사용하여 페이지를 단일 PDF 파일에 추가 할 수 있습니다.

이 기술은 Esri 블로그 에 Python 및 arcpy.mapping과 데이터 구동 페이지 결합 이라는 코드에 설명되어 있으며 아래 코드도 포함되어 있습니다.

예를 들어, 각 페이지마다 다른 테마를 지정하여 여러 페이지로 주제별 아틀라스를 만들 수 있습니다. 다음 예제는 선택한 구획을 확대하고, 다른 도면층 가시성을 토글하고, 토양 맵, 플러드 맵 및 구역 지정 맵으로 구획 보고서를 작성하기 위해 여러 테마의 레이아웃을 내 보냅니다.

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

많은 모양 파일에 대해 이것을 수행하는 방법이 있습니까? 필자는 실제로 파이썬을 사용한 적이 없지만 lyrList에 순환되는 레이어가 있다고 가정합니다. DA_1, DA_2, DA_3 등과 같은 이름을 가진 121 개의 다른 레이어가 있습니다. 개별적으로 이름을 지정하지 않고로드 할 수 있습니까?
침묵하는 제작자

@TheSilentCartographer 나중의 목록은 원하는만큼 길 수 있습니다. PDF를 만들려는 이름을 포함해야합니다. 이러한 이름이 목록에 들어가는 다양한 방법이있을 수 있습니다.
PolyGeo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.