Как включить или выключить слой

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Как включить или выключить слой

Сообщение rhot » 17 май 2017, 10:32

Как включить или выключить слой в ArcGIS без фокусировки на таблицу содержания с помощью сочетания клавиш?
Последний раз редактировалось rhot 19 май 2017, 12:49, всего редактировалось 2 раза.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

lam
Гуру
Сообщения: 1018
Зарегистрирован: 01 авг 2012, 13:55
Репутация: 241

Re: Как включить или выключить слой

Сообщение lam » 17 май 2017, 10:40

Ctrl+Пробел

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Как включить или выключить слой

Сообщение rhot » 17 май 2017, 10:44

без фокусировки на таблицу содержания
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

amnesiac
Активный участник
Сообщения: 244
Зарегистрирован: 03 мар 2015, 10:01
Репутация: 24
Откуда: Санкт-Петербург

Re: Как включить или выключить слой

Сообщение amnesiac » 17 май 2017, 15:02

Так никак вроде...цитируя справку "Нажатие клавиши F3 или щелчок внутри таблицы содержания перемещает фокус в таблицу содержания, после этого возможна навигация и взаимодействие с ней при помощи клавиатуры".

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Как включить или выключить слой

Сообщение rhot » 17 май 2017, 17:19

и через ArcGIS API нельзя?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Monstria
Активный участник
Сообщения: 133
Зарегистрирован: 17 май 2011, 06:22
Репутация: 50
Откуда: Нижний Новгород

Re: Как включить или выключить слой

Сообщение Monstria » 17 май 2017, 20:30

rhot писал(а):и через ArcGIS API нельзя?
Нет границ невозможного - вот к примеру быстренько накидал на коленке
ShowLaers.rar
(64 КБ) 283 скачивания
Вот видео - как работает https://youtu.be/UIjBoOlPoHA
PS... Хотя я не понимаю зачем это вообще может понадобиться :)

PSS.. Решение написано на коленке - поэтому там все "сыро", хотя для демонстрации вполне достаточно

doujin
Активный участник
Сообщения: 163
Зарегистрирован: 28 июн 2012, 01:02
Репутация: 84
Откуда: Vladivostok

Re: Как включить или выключить слой

Сообщение doujin » 18 май 2017, 04:21

Хотя я не понимаю зачем это вообще может понадобиться
Вот тоже было интересно. Возможно для быстрого сравнения растров или полигональных слоев, но тогда можно было бы воспользоваться инструментом шторка.
P.S. Не исключаю, что ткнул пальцем в небо, в уже известную вещь, но вдруг это будет полезно.

Monstria
Активный участник
Сообщения: 133
Зарегистрирован: 17 май 2011, 06:22
Репутация: 50
Откуда: Нижний Новгород

Re: Как включить или выключить слой

Сообщение Monstria » 18 май 2017, 08:03

doujin писал(а): можно было бы воспользоваться инструментом шторка.
Не у всех пока еще PRO имеется :(

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Как включить или выключить слой

Сообщение rhot » 18 май 2017, 15:41

Monstria писал(а):
rhot писал(а):и через ArcGIS API нельзя?
Нет границ невозможного - вот к примеру быстренько накидал на коленке
ShowLaers.rar
Вот видео - как работает https://youtu.be/UIjBoOlPoHA
PS... Хотя я не понимаю зачем это вообще может понадобиться :)

PSS.. Решение написано на коленке - поэтому там все "сыро", хотя для демонстрации вполне достаточно
Подтверждаю, работает! А на питоне такое можно написать, чтобы работало?

Вернее, скрипт есть, только у меня не получается назначить ему сочетание клавиш.

Код: Выделить всё

'''
Script turns off A & B layers.
'''

import arcpy

#A list of layer names that needs to be turned off.
names = ["A", "B"]

mxd = arcpy.mapping.MapDocument("current")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
layers = arcpy.mapping.ListLayers(mxd, "*", df)

for layer in layers:
  if layer.name in names:
    layer.visible = False

arcpy.RefreshTOC()
arcpy.RefreshActiveView()
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Monstria
Активный участник
Сообщения: 133
Зарегистрирован: 17 май 2011, 06:22
Репутация: 50
Откуда: Нижний Новгород

Re: Как включить или выключить слой

Сообщение Monstria » 18 май 2017, 16:21

rhot писал(а): А на питоне такое можно написать, чтобы работало?
Можно, только если выполнено в виде надстройки. (наверное - я небольшой любитель питона, поэтому использую его изредка только в калькуляторе)

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Как включить или выключить слой

Сообщение rhot » 18 май 2017, 16:30

Скопируйте сюда иходный код, пожалуйста. У меня MS Visual Studio не установлен.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Monstria
Активный участник
Сообщения: 133
Зарегистрирован: 17 май 2011, 06:22
Репутация: 50
Откуда: Нижний Новгород

Re: Как включить или выключить слой

Сообщение Monstria » 18 май 2017, 19:32

rhot писал(а):Скопируйте сюда иходный код, пожалуйста.
ShowLaers.rar
(175.81 КБ) 247 скачиваний

doujin
Активный участник
Сообщения: 163
Зарегистрирован: 28 июн 2012, 01:02
Репутация: 84
Откуда: Vladivostok

Re: Как включить или выключить слой

Сообщение doujin » 19 май 2017, 03:55

Monstria писал(а):Не у всех пока еще PRO имеется :(
Шторка есть во всех версиях Arcgis for Desktop 10.х, и, если не ошибаюсь, в 9.х тоже была.

Что бы повесить Python код на сочетание клавиш, его нужно тоже оформить как дополнение в виде кнопки, а не просто скрипт. У них есть ПО и инструкции, которое выполняет практически всю подготовительную часть. Остается только добавить свой код.

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Как включить или выключить слой

Сообщение rhot » 19 май 2017, 12:49

Решено через надстройку Python:

Код: Выделить всё

import arcpy
import pythonaddins

class ButtonOff(object):
    """Implementation for btn1 (Button)"""
    def __init__(self):
        self.enabled = True
        self.checked = False
    def onClick(self):
        names = ["A", "B"]
        mxd = arcpy.mapping.MapDocument("current")
        df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
        layers = arcpy.mapping.ListLayers(mxd, "*", df)
        for layer in layers:
          if layer.name in names:
            layer.visible = False
        arcpy.RefreshTOC()
        arcpy.RefreshActiveView()

class ButtonOn(object):
    """Implementation for btn2 (Button)"""
    def __init__(self):
        self.enabled = True
        self.checked = False
    def onClick(self):
        names = ["A", "B"]
        mxd = arcpy.mapping.MapDocument("current")
        df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
        layers = arcpy.mapping.ListLayers(mxd, "*", df)
        for layer in layers:
          if layer.name in names:
            if layer.visible:
              layer.visible = False
            else: 
              layer.visible = True
        arcpy.RefreshTOC()
        arcpy.RefreshActiveView()
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot] и 11 гостей