Как включить или выключить слой
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Как включить или выключить слой
Как включить или выключить слой в ArcGIS без фокусировки на таблицу содержания с помощью сочетания клавиш?
Последний раз редактировалось rhot 19 май 2017, 12:49, всего редактировалось 2 раза.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: Как включить или выключить слой
Ctrl+Пробел
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Как включить или выключить слой
без фокусировки на таблицу содержания
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Активный участник
- Сообщения: 244
- Зарегистрирован: 03 мар 2015, 10:01
- Репутация: 24
- Откуда: Санкт-Петербург
Re: Как включить или выключить слой
Так никак вроде...цитируя справку "Нажатие клавиши F3 или щелчок внутри таблицы содержания перемещает фокус в таблицу содержания, после этого возможна навигация и взаимодействие с ней при помощи клавиатуры".
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Как включить или выключить слой
и через ArcGIS API нельзя?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 17 май 2011, 06:22
- Репутация: 50
- Откуда: Нижний Новгород
Re: Как включить или выключить слой
Нет границ невозможного - вот к примеру быстренько накидал на коленкеrhot писал(а):и через ArcGIS API нельзя?
Вот видео - как работает https://youtu.be/UIjBoOlPoHA
PS... Хотя я не понимаю зачем это вообще может понадобиться
PSS.. Решение написано на коленке - поэтому там все "сыро", хотя для демонстрации вполне достаточно
-
- Активный участник
- Сообщения: 163
- Зарегистрирован: 28 июн 2012, 01:02
- Репутация: 84
- Откуда: Vladivostok
Re: Как включить или выключить слой
Вот тоже было интересно. Возможно для быстрого сравнения растров или полигональных слоев, но тогда можно было бы воспользоваться инструментом шторка.Хотя я не понимаю зачем это вообще может понадобиться
P.S. Не исключаю, что ткнул пальцем в небо, в уже известную вещь, но вдруг это будет полезно.
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 17 май 2011, 06:22
- Репутация: 50
- Откуда: Нижний Новгород
Re: Как включить или выключить слой
Не у всех пока еще PRO имеетсяdoujin писал(а): можно было бы воспользоваться инструментом шторка.
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Как включить или выключить слой
Подтверждаю, работает! А на питоне такое можно написать, чтобы работало?Monstria писал(а):Нет границ невозможного - вот к примеру быстренько накидал на коленкеrhot писал(а):и через ArcGIS API нельзя?
Вот видео - как работает 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} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 17 май 2011, 06:22
- Репутация: 50
- Откуда: Нижний Новгород
Re: Как включить или выключить слой
Можно, только если выполнено в виде надстройки. (наверное - я небольшой любитель питона, поэтому использую его изредка только в калькуляторе)rhot писал(а): А на питоне такое можно написать, чтобы работало?
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Как включить или выключить слой
Скопируйте сюда иходный код, пожалуйста. У меня MS Visual Studio не установлен.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 17 май 2011, 06:22
- Репутация: 50
- Откуда: Нижний Новгород
Re: Как включить или выключить слой
rhot писал(а):Скопируйте сюда иходный код, пожалуйста.
-
- Активный участник
- Сообщения: 163
- Зарегистрирован: 28 июн 2012, 01:02
- Репутация: 84
- Откуда: Vladivostok
Re: Как включить или выключить слой
Шторка есть во всех версиях Arcgis for Desktop 10.х, и, если не ошибаюсь, в 9.х тоже была.Monstria писал(а):Не у всех пока еще PRO имеется
Что бы повесить Python код на сочетание клавиш, его нужно тоже оформить как дополнение в виде кнопки, а не просто скрипт. У них есть ПО и инструкции, которое выполняет практически всю подготовительную часть. Остается только добавить свой код.
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Как включить или выключить слой
Решено через надстройку 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} \_ Знание сила ¸.·´¯)¸.·´¯)___________
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 32 гостя