วิธีทำให้ Map Book ของหน้าเว็บที่แสดงพื้นที่เดียวกัน แต่เปิด / ปิดเลเยอร์ต่าง ๆ


9

ใน ESRI หนังสือแผนที่เหมาะที่สุดสำหรับชุดคุณลักษณะที่แต่ละคนมีหน้าของตนเอง ช่วยให้คุณสามารถเลือกสถานที่และสร้างหน้าหนังสือแผนที่สำหรับแต่ละสถานที่รวมถึงข้อมูลเพิ่มเติมใด ๆ ที่คุณต้องการเพิ่มในแต่ละหน้าผ่านข้อความแบบไดนามิกแผนภูมิ ฯลฯ

มีอีกทางเลือกหนึ่งในการพูดถึงชุดของหน้าเว็บที่แสดงพื้นที่เดียวกันของ EXACT แต่มีการเปิดและปิดเลเยอร์ที่แตกต่างกันหรือไม่ เรามีเอกสารการปรับปรุงทุนที่ฉันต้องสร้างเพื่อแสดงขอบเขตของเมืองในทุกหน้า หน้าหนึ่งมีสถานีตำรวจและสถานีดับเพลิงทั้งหมดแสดงอีกรายการหนึ่งแสดงระบบน้ำที่นำเสนออีกรายการแสดงทางด่วนและทางหลวงและงานที่ทำใกล้หรือบน ... ฯลฯ โฆษณาคลื่นไส้

มีวิธีในการตั้งค่านี้เพื่อที่ฉันไม่ต้องสร้าง MXD แยกต่างหากสำหรับแต่ละหน้าแผนที่ของเอกสารนี้หรือไม่?


เดสก์ท็อปรุ่นใด เครื่องมือมีการเปลี่ยนแปลงเล็กน้อยในแต่ละรุ่น
Brad Nesom

ArcGIS สำหรับเดสก์ท็อปขั้นสูง 10.2.2
randomblink

คำตอบ:


10

ฉันสามารถทำสิ่งนี้ได้เมื่อฉันมี ArcGIS 9.3 และใช้งานได้ดีมาก ฉันไม่รู้ว่าจะใช้งานได้กับ ArcGIS 10.0 หรือใหม่กว่าตามที่ระบุไว้ในเว็บไซต์ของพวกเขา แต่ฉันจะลองดู

ArcMapBook

แก้ไข:
สามารถทำได้โดยเพียงแค่สร้างหน้ารูปสี่เหลี่ยมผืนผ้าสำหรับแต่ละชุดของเลเยอร์ที่ซ้อนกันอยู่ด้านบนของกันและกัน ตั้งชื่อแต่ละหน้าแยกกันและกำหนดค่าให้กับแต่ละเลเยอร์ที่จะแสดงในเฟรม
นอกจากนี้คุณยังต้องกำหนดค่าแอททริบิวให้กับรายการที่จะปรากฏในหน้าเฉพาะเท่านั้น
จากนั้นใช้การกำหนดเพจเพื่อ จำกัด ออบเจ็กต์ให้เป็นชื่อหน้า
ในคุณสมบัติเลเยอร์บนหน้าคำนิยามแบบสอบถาม> คำจำกัดความของหน้า
pagedef

มีตัวเลือกเพื่อเปิดใช้งานการจับคู่ / ไม่ตรงกันและชื่อฟิลด์
เปิดการใช้งาน
มีความเป็นไปได้ค่อนข้างไม่สิ้นสุดที่การเข้ารหัสข้อมูลของคุณจะทำงานภายในกรอบงาน
นอกจากนี้หากคุณมีรายการที่คุณต้องการแสดงในทุกหน้าพวกเขาก็ไม่ได้เปิดใช้งาน


1
สิ่งนี้ยังใช้ได้กับ 10.1, 10.2
Brad Nesom

4

ผมคิดว่าความต้องการของคุณจะเป็นมากที่สุดได้อย่างง่ายดายและสังหรณ์ใจพบโดยมีแผนที่เดียวกับชั้นทั้งหมดที่รวมอยู่แล้วในการเขียนสคริปต์ Python ง่ายที่ใช้ชั้น .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

มีวิธีทำเช่นนี้สำหรับรูปร่างที่มีขนาดใหญ่หรือไม่? ฉันไม่เคยใช้ Python จริง ๆ แต่ฉันคิดว่า lyrList มีเลเยอร์ที่จะหมุนเวียนผ่าน ฉันมีเลเยอร์ที่แตกต่างกัน 121 แบบโดยมีชื่ออย่างเช่น DA_1, DA_2, DA_3 และอื่น ๆ มีวิธีโหลดโดยไม่ตั้งชื่อมันเป็นรายบุคคลหรือไม่?
นักทำแผนที่ไร้เสียง

@TheSilentCartographer รายชื่อ laters ของคุณอาจยาวเท่าที่คุณต้องการ จะต้องมีชื่อของผู้ที่คุณต้องการสร้าง PDF สำหรับ อาจมีหลายวิธีที่ชื่อเหล่านั้นเข้าสู่รายการ
PolyGeo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.