Wyświetlasz tylko wybrane obiekty na mapie w QGIS?


30

Nie jestem pewien, czy ta opcja kiedykolwiek istniała, ale nowa wersja QGIS kryje wiele rzeczy gdzie indziej i wydaje się to tak proste, że jestem pewien, że było to możliwe wcześniej.

Mam dość duży zestaw danych ze śladami statków. Chcę teraz analizować pojedyncze ścieżki statku (wykonane z warstwy punktowej za pomocą punktów2one) - jednak jest tak zatłoczone, że trudno jest patrzeć na poszczególne ścieżki. Nie chcę zapisywać każdej ścieżki jako nowej warstwy, więc zastanawiam się, czy można wybrać jedną ścieżkę w tabeli atrybutów i wyświetlić tylko tę jedną na mapie / ukryć pozostałe?

Odpowiedzi:


33

Odpowiedź Kadeema zapobiegnie widoczności twoich funkcji, ale będą one nadal obecne, jeśli próbujesz zidentyfikować indywidualny ślad statku, możesz przez pomyłkę kliknąć niewidoczną funkcję. Wydaje się, że musisz to zrobić, zdefiniuj swoją warstwę, tak aby wyglądało to tak, jakby te funkcje nie istniały. W ArcGIS zwykle odbywa się to za pomocą zapytania definicji, w QGIS równoważnym poleceniem jest podzbiór warstw. Przejdź do właściwości swojej warstwy, na karcie Ogólne, na dole znajduje się pole Podzbiór funkcji, kliknij przycisk poniżej, aby wyświetlić Konstruktora kwerend:

wprowadź opis zdjęcia tutaj

Kreator zapytań pomoże ci utworzyć zapytanie SQL, aby zdefiniować, które funkcje w twojej warstwie powinny być wyświetlane w twoim projekcie. Wszelkie funkcje, które nie są zwracane przez zapytanie, stają się niewidoczne, nie tylko wizualnie, ale całkowicie (nie są usuwane z twoich danych, oczywiście, są one po prostu zdefiniowane, dopóki nie usuniesz zapytania podzbioru warstw).


Dan, wielkie dzięki !!! Właśnie tego szukałem, nieco bardziej skomplikowanego niż się spodziewałem, ale robi to samo! Bardzo pomocne, dzięki!
Kristina

To jest odpowiedź na pytanie. Dobra wskazówka Dan!
kadéem

Dziwne. Jakiś czas temu to zrobiłem i zadziałało. Teraz chcę to zrobić ponownie na innej warstwie, a pole Podzbiór cech jest wyszarzone, podobnie jak przycisk QueryBuilder! Jakieś sugestie???
Patrick Van Den Noortgaete,

Rozwiązane, ale nie wiadomo dlaczego.
Zapisałem

1
@SimoA. Jeśli dane w programie Excel, można je filtrować tam, dodać nowe pole, gdzie przekształcają VALUEsię 'VALUE',, a następnie skopiuj i wklej to pole w pole zapytania przy użyciu kwerendy w.
Dan C

15

Jest to teraz możliwe przy użyciu tylko selekcji i opartej na regułach symboliki.

Wymaga to wtyczki Expression Plus (dla QGIS 2.x. 3.0 ma wbudowaną funkcjonalność).

Utwórz symbolikę opartą na regułach z filtrem:

QGIS 3.0+ (od thequerist w komentarzach):

is_selected()

QGIS 2.12-2.18:

isselected( @layer_name )

Lub QGIS 2.8:

isselected( 'ACTUAL_NAME_OF_LAYER' )

Teraz będą wyświetlane tylko wybrane funkcje spełniające tę regułę.

Możesz także mieć regułę ELSE dla wszystkich niewybranych funkcji.

wprowadź opis zdjęcia tutaj


1
Właśnie tego szukałem - dzięki za tę odpowiedź
geobar

HeikkiVesanto, gdzie wstawiam ten filtr?
newGIS

Dodałem zdjęcie.
HeikkiVesanto

1
Za pomocą QGIS 2.18.14 i zaznaczone wyrażenie jest zaznaczone („nazwa_warstwy”). Użycie (@layer_name) zwróciło 0 wyników.
Techie_Gus,

2
W QGIS 3 i powyżej tej funkcji jest zbudowany w. Można go znaleźć pod Record and Attributesw Expression String Builder. Ponadto nie musisz już umieszczać nazwy warstwy i nie zapomnij podkreślić podkreślenia między isi selected. Oto przykład dla QGIS 3 i powyżej: is_selected().
thequerist

12

Kristina, zakładam, że w twojej tabeli jest atrybut, który pozwala ci zidentyfikować pojedynczy utwór? Na przykład:

  point_id  |  track_id
------------+------------
     1      |     15
     2      |     15
     5      |     24
     6      |     24
     7      |     24

Jeśli otworzysz tabelę atrybutów, możesz znaleźć symbol epsilon (na poniższym rysunku, czwarty).

wprowadź opis zdjęcia tutaj

To pozwala wpisać wyrażenie; na przykład:

"track_id" = 24

Po potwierdzeniu track_idwybierane są wszystkie wiersze spełniające wyrażenie (to znaczy: wszystkie punkty, które należą do ścieżki za pomocą X). Jeśli następnie klikniesz przycisk lupy, QGIS powiększy wybór do obszaru roboczego mapy. Wybrane funkcje (punkty w twoim przypadku) są podświetlone.


Możesz zastosować styl oparty na regułach. Jako taki możesz pokazać indywidualny ślad statku za pomocą danego symbolu lub znacznika i „nie pokazywać” wszystkich innych punktów, nadając im „niewidzialny” znacznik. Zrzut ekranu (część właściwości warstwy) poniżej wyjaśnia, jak to działa:

  • Zasada 1: zastosuj dany znacznik do wszystkich punktów o wartości 24 dla track_id
  • Zasada 2: zastosuj dany znacznik (okrąg z białym wypełnieniem i białą obwódką ...) do wszystkich punktów, które nie spełniają track_idwartości 24

wprowadź opis zdjęcia tutaj

W rzeczywistości wszystkie punkty są nadal dostępne (ich kolor biały nie spowoduje, że renderowanie zajmie mniej czasu), ale przynajmniej twoje oczy mogą się zrelaksować!


Wielkie dzięki za odpowiedź Kadeem! Zdaję sobie sprawę z funkcji wyboru i działa to dobrze, jednak dosłownie mam 500 000 punktów na małym obszarze i samo podkreślenie szukanych tras nie wystarczy, mapa jest wciąż zbyt zatłoczona i zagmatwana. Czy wiesz, czy istnieje możliwość zablokowania wszystkich niewybranych punktów lub czegoś podobnego?
Kristina

2
Zredagowałem swoją odpowiedź za pomocą innej opcji poniżej linii. Myślę, że to ci pomoże.
kadéem

Kadeem, to takie proste, ale skuteczne - świetny pomysł, wielkie dzięki!
Kristina
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.