Jak uczynić warstwę lub grupę niewidoczną w panelu Warstwy?


13

Mam kilka warstw w panelu Warstwy w grupie, ale nie chcę ich pokazywać (jest ich całkiem sporo, więc wygląda nieporządnie). Te warstwy są również połączone z kilkoma innymi.

Czy jest możliwe, aby te warstwy były niewidoczne dla użytkownika ( tzn. Nie są wyświetlane w panelu Warstwy, nie chodzi o ustawienie widoczności warstwy ), ale nadal można je połączyć z innymi warstwami? A może sprawi, że grupa będzie niewidoczna?

Najbliżej znalazłem ten post, ale mam nadzieję, że istnieje bardziej bezpośrednie podejście:

Pokazuje tylko niektóre warstwy w legendzie QGIS?

Odpowiedzi:


15

Uważam, że uczynienie warstw / grup „niewidocznymi” jest przydatne, aby uniknąć wyświetlania tabel odnośników, które są wymagane do relacji wartości, ale mogą sprawić, że panel warstw będzie wyglądał na nieco przeciążony.

Aby wyjaśnić, niewidoczne warstwy / grupy nie pojawią się w panelu Warstwy, ale nadal można je zobaczyć w obszarze roboczym lub użyć w połączeniach / relacjach z innymi warstwami.


ODPOWIEDŹ:

Użyj wtyczki Niewidoczne warstwy i grupy , które pozwalają:

  • Spraw, aby wybrane warstwy / grupy były niewidoczne (przycisk wtyczki).
  • Spraw, by warstwy / grupy (które są niewidoczne) były ponownie widoczne (przycisk wtyczki).
  • Przechowuj widoczność warstw / grup w swoim projekcie QGIS.
  • Odtwórz widoczność warstw / grup podczas otwierania projektu QGIS.
  • Uczyń określoną warstwę niewidoczną (kodem).
  • Spraw, aby dana grupa była niewidoczna (kodem).

Niewidoczność warstwy (kodem):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideLayer( layer )    # layer is a QgsMapLayer

Uczynienie grupy niewidoczną (kodem):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideGroup( group )    # group is a QgsLayerTreeGroup
    ilg.hideGroup( 'group2' ) # You can also pass a group name

Uwaga: należy pamiętać o problemie. Jeśli uczynisz warstwę niewidoczną, a następnie przeniesiesz jej grupę nadrzędną, warstwa niewidoczna będzie ponownie widoczna (nie wiem dlaczego!). Zatem moim zaleceniem jest, aby tylko górne warstwy / grupy były niewidoczne (w końcu nie można przenieść katalogu głównego).


Właśnie tego szukałem, wielkie dzięki za to! Rzeczywiście mam kilka warstw, które są używane do obliczeń (wszystkie są połączone z inną warstwą), więc nie chcę, aby użytkownik widział lub edytować te warstwy. Twoje rozwiązanie bardzo to rozwiązuje. Jedno pytanie, czy implementowałeś to dopiero jako wtyczkę?
— Joseph

Racja, został opublikowany kilka dni temu. Zastanawiałem się kiedyś, jak ukryć warstwy, ale dopiero po tym pytaniu podjąłem się zadania (będę potrzebował tego wcześniej lub później w pracy). Myślałem o odpowiedzi za pomocą fragmentów kodu, ale odpowiedź była wystarczająco długa, aby stać się złożona, więc wolałem enkapsulować ją we wtyczce, która jest znacznie łatwiejsza w użyciu.
— Germán Carrillo

To świetna wtyczka, więc zagłosowałem na nią :)
— Joseph

+1 Bardzo przydatna wtyczka. Specjalnie dla mojej pracy, aby być konkretnym w mapowaniu danych w terenie za pomocą Tough Book + QGIS, aby uniknąć przeciążenia panelu warstw (przewijanie zajmuje trochę czasu w terenie). Mam sugestię (może w celu ulepszenia wtyczki (lub nie)): Czy możesz wdrożyć, że wtyczka pamięta warstwy, które zaznaczyłeś raz, i uczynić je niewidocznymi, gdy przycisk wtyczki (sprawi, że będą niewidoczne) zostanie ponownie wciśnięty? Aby ustawić niewidoczny kolejny wybór (warstwy / grupy), musisz wybrać je od nowa.
— Stefan

Świetnie, że wtyczka jest dla Ciebie przydatna! Dziękujemy za sugestię, czy mógłbyś dodać nowe żądanie funkcji (problem) w GitHub ?
— Germán Carrillo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.