แสดงเฉพาะรายการในตำนานที่แสดงบนแผนที่ใน ArcGIS Desktop จริงหรือ


14

การใช้เดสก์ท็อป ArcGIS มีวิธีใดในตำนานที่จะแสดงเฉพาะรายการย่อยที่แสดงบนแผนที่?


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

1
@Raj - โอ้ไม่ฉันไม่ได้วางแผนที่จะรักษาแผนที่จะเจ็บปวด
dassouki

1
คำถามที่เชื่อมโยงเป็นคำถามอื่นที่ได้รับคำตอบ ดังนั้นให้ถามคำถามใหม่ที่อธิบายปัญหาของคุณโดยละเอียด
MathiasWestin

1
คำถามเก่าถูกติดแท็ก arcgis 9.3 ดังนั้นคุณควรตกลงถามคำถามใหม่และการติดแท็กสำหรับ ArcGIS 10 นอกจากนี้คำถามที่เชื่อมโยงคือคำตอบและคุณกำลังถามคำถามการแก้ไขปัญหาสำหรับตัว จำกัด ตำนาน
Jay Cummins

นอกจากนี้คำถามการแก้ไขปัญหาอาจใช้เวลาสักครู่ในการรับแรงฉุดและคุณควรพยายามจัดระเบียบเนื้อหาของคำถามด้วยข้อมูลใหม่เพื่อให้ง่ายต่อการติดตาม มิฉะนั้นผู้ใช้รายอื่นจะดูและย้ายไปยังคำถามถัดไป
Jay Cummins

คำตอบ:


9

ตัว จำกัด ตำนาน

Legend Limiter ใช้งานได้กับเลเยอร์ที่ใช้ "หมวดค่าที่ไม่ซ้ำ" เพื่อกำหนดสัญลักษณ์ คำอธิบายลักษณะนี้สามารถตั้งค่าได้ในแท็บ Symbology ของกล่องโต้ตอบ Layer Properties Legend Limiter จะไม่ จำกัด สัญลักษณ์ของเลเยอร์ที่ตั้งค่าด้วยสัญลักษณ์สัญลักษณ์เดี่ยว

http://arcscripts.esri.com/details.asp?dbid=16097


นั่นคือที่ใกล้เคียงกับสิ่งที่ฉันต้องการในสาระสำคัญที่ผมต้องแปลงทุกสัญลักษณ์ของฉันที่จะคุ้มค่าที่ไม่ซ้ำกัน
dassouki

@ Mapperz - มีการแก้ไขสำหรับ ArcGIS 10 ที่นี่: forums.arcgis.com/threads/24968-Legend-Limiter-in-Arc-10
Dano

@ Mapperz (หรือใครก็ได้) - ฉันดาวน์โหลดไฟล์ที่จำเป็นสำหรับ Legend Limiter ที่ลิงค์ที่ฉันโพสต์ด้านบน เมื่อพยายามติดตั้งฉันได้รับข้อความแสดงข้อผิดพลาดซึ่งฉัน googled ฉันรู้สึกว่าไม่มีแพตช์ที่มีอยู่ทำให้ Add-on นี้เข้ากันได้กับทั้ง ArcGIS 10 และ Windows 7 ในเธรดนี้ฉันควรเริ่มคำถามใหม่เกี่ยวกับหัวข้อนี้หรือไม่ หรือ .... ใคร ๆ ก็รู้ว่าแพทช์ประชุมทั้งสองพารามิเตอร์ (Arc 10 & Windows 7) /
Dano

3
ทำงานในโหมดความเข้ากันได้ของ Windows ใน Windows 7
Mapperz

@ Mapperz - คุณสามารถโพสต์คำตอบนี้เพื่อให้ฉันสามารถเลือกมันเป็นคำตอบ คำถามของฉันเกี่ยวกับปัญหานี้อยู่ที่นี่: gis.stackexchange.com/questions/12609/…
Dano

11

ไม่จำเป็นต้องเขียน ArcPy เพิ่มเติมใด ๆ สำหรับสิ่งนี้ เพียงใช้ตำนานแบบไดนามิก (ซึ่งเพิ่มที่ ArcGIS 10.1) เมื่อคุณเขียนแผนที่ของคุณ

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


4

ในมุมมองแผนที่คลิกขวาบน Legend เพื่อเปิดหน้าต่าง Properties จากนั้นคลิกแท็บ "Items" ใต้ "ตัวเลือกขอบเขตแผนที่" เลือก "แสดงเฉพาะคลาสที่มองเห็นได้ในขอบเขตแผนที่ปัจจุบัน"

มันจะรีเฟรชเมื่อคุณเคลื่อนที่ไปรอบ ๆ แผนที่หรือเปิด / ปิดการเรียนภายในเลเยอร์


นี่ดูเหมือนจะเป็นเช่นเดียวกับคำตอบอื่นที่โพสต์เมื่อปีที่แล้ว
PolyGeo

ขอบคุณที่เจาะจงเกี่ยวกับช่องที่ซ่อนตัวอยู่!
JMers

1

ฉันคิดว่ารหัสนี้จะช่วย:

import arcpy
import arcpy.mapping
import os
import sys
from arcpy import env
import string


env.workspace = r"C:\Project"
for mxdname in arcpy.ListFiles("*.mxd"):
    print mxdname
    mxd = arcpy.mapping.MapDocument(r"C:\Project\\" + mxdname)
    legend = arcpy.mapping.ListLayoutElements(mxd,"LEGEND_ELEMENT")[0]
    for lyr in legend.listLegendItemLayers():
        legend.updateItem(lyr, use_visible_extent = True)
        print 'updateItem'    
    mxd.save()
del mxd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.