Показувати лише елементи легенди, які насправді відображаються на карті в ArcGIS Desktop?


14

Використовуючи ArcGIS Desktop, чи існує можливість легенди відображати лише підпункти, які відображаються на карті?


Ви намагалися перетворити легенду в графіку? Після перетворення в графіку ви можете вручну видалити об'єкти в легенді, які вам не потрібні. Я сподіваюся, що це допомагає. Спасибі.
Радж

1
@Raj - О ні, я не планую робити, що підтримка карт буде болем
dassouki

1
Зв'язане питання - це ще одне питання, на яке було дано відповідь. Тому поставте нове запитання, яке детально описує вашу проблему.
MathiasWestin

1
Старе запитання позначено аркгісом 9.3, тому вам повинно бути в порядку задати нове запитання та позначити ArcGIS 10. Крім того, пов'язане питання є відповіддю, і ви задаєте питання щодо усунення несправностей для обмежувача легенд.
Jay Cummins

Крім того, усунення несправностей може зайняти деякий час, щоб отримати тягу, і вам слід попрацювати, щоб організувати питання питання з новою інформацією, щоб було легко стежити. Або ж інші користувачі переглянуть це і перейдуть до наступного питання.
Jay Cummins

Відповіді:


9

Обмежувач легенд

Обмежувач легенд працює лише на шарах, які використовують "унікальні категорії значень" для визначення символіки. Цей стиль легенди можна встановити на вкладці "Символогія" діалогового вікна "Властивості шару". Ограничитель легенд не обмежує символіку шарів, встановлених символом єдиного символу.

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


Це найближче до того, що мені потрібно, По суті, я повинен перетворити всю свою символіку на унікальну цінність
dassouki

@ Mapperz - тут є виправлення для ArcGIS 10: forums.arcgis.com/threads/24968-Legend-Limiter-in-Arc-10
Дано

@ Mapperz (або хто-небудь) - я завантажив необхідні файли для обмежувача легенд за посиланням, яке я розмістив вище. При спробі встановлення я отримав повідомлення про помилку, яке я гугл. У мене складається враження, що немає жодного патча, що робить це доповнення сумісним як з ArcGIS 10, так і з Windows 7. У цій темі я повинен почати нове запитання, пов’язане з цією темою? Або .... хтось знає про патч, що відповідає обом параметрам (Arc 10 & Windows 7) /
Дано,

3
Запуск у режимі
сумісності

@ Mapperz - чи можете ви опублікувати цю відповідь, щоб я міг вибрати її як відповідь. Моє запитання щодо цієї проблеми знаходиться тут: gis.stackexchange.com/questions/12609/…
Дано,

11

Для цього не потрібно писати ніяких додаткових ArcPy. Просто використовуйте динамічні легенди (які були додані в ArcGIS 10.1) під час створення ваших карт.

Параметри обсягу карт дозволяють контролювати взаємодію елементів, які відповідають статусу легенди, з поточним масштабом карти. Якщо прапорець Показати лише класи класів, які видимі в поточному масштабі карти , позначення класу елементів легенди з’явиться в легенді, лише якщо функція цього класу знаходиться в поточному масштабі. Якщо жодних функцій цього елементу легенди немає в поточному масштабі, весь елемент буде видалений з легенди.


4

У вікні карти натисніть правою кнопкою миші Легенда, щоб відкрити вікно Властивості, а потім перейдіть на вкладку «Елементи». У розділі "Параметри обсягу карт" виберіть "Показати лише класи, які видимі в поточному масштабі карти".

Він буде оновлюватися під час переміщення по карті або вмикання / вимикання класів всередині шару.



Дякуємо, що уточнили, де ховався прапорець!
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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.