Hanya menampilkan item legenda yang benar-benar ditampilkan di peta di ArcGIS Desktop?

14

Menggunakan ArcGIS Desktop, adakah cara untuk legenda tersebut, untuk hanya menampilkan subtitle yang ditampilkan pada peta?

dassouki
sumber
Apakah Anda mencoba mengubah legenda menjadi grafis? Setelah mengonversi ke dalam grafik, Anda dapat secara manual menghapus item dalam legenda yang tidak Anda butuhkan. Saya harap itu membantu. Terima kasih.
Raj
1
@Raj - Oh tidak, saya tidak berencana melakukan hal itu akan membuat peta sakit
dassouki
1
Pertanyaan yang ditautkan adalah pertanyaan lain yang telah dijawab. Jadi tanyakan pertanyaan baru yang menjelaskan masalah Anda secara detail.
MathiasWestin
1
Pertanyaan lama diberi tag arcgis 9.3, jadi Anda harus baik-baik saja mengajukan pertanyaan baru dan memberi tag untuk ArcGIS 10. Selain itu, pertanyaan yang ditautkan adalah jawaban dan Anda menanyakan pertanyaan pemecahan masalah untuk legenda limiter.
Jay Cummins
Selain itu, pertanyaan pemecahan masalah dapat membutuhkan waktu untuk mendapatkan daya tarik dan Anda harus berusaha untuk mencoba dan menjaga agar badan pertanyaan tetap teratur dengan informasi baru sehingga mudah diikuti. Atau pengguna lain akan melihatnya dan melanjutkan ke pertanyaan berikutnya.
Jay Cummins

Jawaban:

9

Limiter legenda

Legend Limiter hanya berfungsi pada lapisan yang menggunakan "kategori nilai unik" untuk mendefinisikan simbologi. Gaya legenda ini dapat diatur di tab Simbologi dari dialog Layer Properties. Legend Limiter tidak akan membatasi simbologi lapisan yang diatur dengan simbologi simbol tunggal.

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

Mapperz
sumber
Itulah yang paling dekat dengan yang saya butuhkan, Intinya, saya harus mengubah semua simbologi saya menjadi nilai yang unik
dassouki
@ Mapperz - ada perbaikan untuk ArcGIS 10 di sini: forums.arcgis.com/threads/24968-Legend-Limiter-in-Arc-10
Dano
@ Mapperz (atau siapa saja) - Saya mengunduh file yang diperlukan untuk Legend Limiter di tautan yang saya posting di atas. Ketika mencoba menginstal, saya menerima pesan kesalahan, yang saya googled. Saya mendapat kesan bahwa tidak ada tambalan yang ada membuat add-on ini kompatibel dengan ArcGIS 10 dan Windows 7. Pada utas ini, haruskah saya memulai pertanyaan baru terkait dengan topik ini? Atau .... adakah yang mengetahui patch memenuhi kedua parameter (Arc 10 & Windows 7) /
Dano
3
Jalankan dalam mode
kompabilitas
@ Mapperz - dapatkah Anda mengirim jawaban ini sehingga saya dapat memilihnya sebagai jawabannya. Pertanyaan saya tentang masalah ini ada di sini: gis.stackexchange.com/questions/12609/…
Dano
11

Tidak perlu menulis ArcPy tambahan untuk ini. Cukup gunakan legenda dinamis (yang ditambahkan di ArcGIS 10.1) saat Anda membuat peta.

Map Extent Options memungkinkan Anda untuk mengontrol bagaimana item legenda yang memenuhi syarat berinteraksi dengan luas peta saat ini. Jika kotak centang Hanya tampilkan kelas yang terlihat di peta saat ini dicentang, kelas item legenda hanya akan muncul dalam legenda jika fitur dari kelas itu ada di tingkat saat ini. Jika tidak ada fitur dari item legenda itu dalam tingkat saat ini, seluruh item akan dihapus dari legenda.

PolyGeo
sumber
4

Pada tampilan peta, klik kanan pada Legenda untuk membuka jendela Properti, lalu klik tab "Item". Di bawah "Opsi Opsi Peta", pilih "Hanya tampilkan kelas yang terlihat pada tingkat peta saat ini".

Ini akan menyegarkan saat Anda bergerak di sekitar peta atau mengaktifkan / menonaktifkan kelas dalam lapisan.

vputinski
sumber
Ini sepertinya sama dengan jawaban lain yang diposting setahun sebelumnya .
PolyGeo
Terima kasih telah menjelaskan tentang tempat kotak centang disembunyikan!
JMers
1

saya pikir kode ini akan membantu:

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
GIS baru
sumber