Nur ausgewählte Features auf der Karte in QGIS anzeigen?

30

Ich bin mir nicht sicher, ob es diese Option jemals gab, aber die neue QGIS-Version verbirgt viele Dinge an anderer Stelle und das scheint so einfach zu sein, dass ich irgendwie davon überzeugt bin, dass dies zuvor möglich war.

Ich habe einen ziemlich großen Datensatz mit Schiffsspuren. Ich möchte nun einzelne Schiffsspuren analysieren (aus Punktebene mit points2one) - allerdings ist es so überfüllt, dass es schwierig ist, einzelne Spuren zu betrachten. Ich möchte nicht jede einzelne Spur als neue Ebene speichern, also frage ich mich, ob es möglich ist, eine Spur in der Attributtabelle auszuwählen und nur diese auf der Karte anzuzeigen / die anderen auszublenden.

Kristina
quelle

Antworten:

33

Durch die Antwort von Kadeem wird verhindert, dass Ihre Features angezeigt werden. Sie sind jedoch weiterhin vorhanden. Wenn Sie versuchen, eine einzelne Schiffsspur zu identifizieren, klicken Sie möglicherweise versehentlich auf ein unsichtbares Feature. Anscheinend müssen Sie Ihre Ebene so definieren, dass diese Features nicht vorhanden sind. In ArcGIS wird dies normalerweise mithilfe einer Definitionsabfrage durchgeführt. In QGIS ist der entsprechende Befehl die Layer-Teilmenge. Gehen Sie zu den Eigenschaften Ihres Layers auf der Registerkarte "Allgemein". Unten befindet sich das Feld "Feature-Teilmenge". Klicken Sie auf die Schaltfläche darunter, um den Abfrage-Generator aufzurufen.

Bildbeschreibung hier eingeben

Mit dem Abfrage-Generator können Sie eine SQL-Abfrage erstellen, um zu definieren, welche Features in Ihrem Layer tatsächlich in Ihrem Projekt angezeigt werden sollen. Alle Features, die nicht von der Abfrage zurückgegeben werden, werden nicht nur visuell, sondern vollständig unsichtbar gemacht (sie werden nicht aus Ihren Daten gelöscht. Sie sind natürlich nur so lange nicht vorhanden, bis Sie die Layer-Teilmengen-Abfrage entfernen).

Dan C
quelle
Dan, vielen Dank !!! Das ist, wonach ich gesucht habe, ein bisschen komplizierter als ich gehofft habe, aber es macht den Trick! Sehr hilfreich, danke!
Kristina
Das ist die Antwort. Schöner Tipp Dan!
Kadéem
Seltsam. Vor einiger Zeit habe ich das gemacht und es hat funktioniert. Jetzt möchte ich es auf einer anderen Ebene wiederholen und das Feld Feature-Untermenge sowie die Schaltfläche des QueryBuilder sind ausgegraut! Irgendein Vorschlag???
Patrick Van Den Noortgaete
Gelöst, aber nicht klar warum. Ich habe die vorgenommenen Änderungen gespeichert und dann wurde der QueryBuilder-Button verfügbar ...
Patrick Van Den Noortgaete
1
@SimoA. Wenn Ihre Daten in Excel sind, können Sie es dort filtern, fügen Sie ein neues Feld , in dem Sie konvertieren VALUEzu 'VALUE',, dann kopieren und das Feld in das Suchfeld einfügen einer IN - Abfrage verwenden.
Dan C
15

Dies ist jetzt nur mit Auswahlmöglichkeiten und einer regelbasierten Symbologie möglich.

Dies erfordert das Expression Plus-Plugin (für QGIS 2.x. 3.0 ist die Funktionalität integriert).

Erstellen Sie eine regelbasierte Symbologie mit dem Filter:

QGIS 3.0+ (vom Thequeristen in den Kommentaren):

is_selected()

QGIS 2.12-2.18:

isselected( @layer_name )

Oder QGIS 2.8:

isselected( 'ACTUAL_NAME_OF_LAYER' )

Jetzt werden nur die ausgewählten Features angezeigt, die dieser Regel entsprechen.

Sie können auch eine ELSE-Regel für alle nicht ausgewählten Features festlegen.

Bildbeschreibung hier eingeben

HeikkiVesanto
quelle
1
Genau das habe ich gesucht - danke für diese Antwort
Geobar 13.10.16
HeikkiVesanto, wo füge ich diesen Filter ein?
newGIS
Ich habe ein Bild hinzugefügt.
HeikkiVesanto
1
Wenn Sie QGIS 2.18.14 verwenden und der funktionierende Ausdruck ausgewählt ist ('Ebenenname'). Using (@layer_name) gab 0 Ergebnisse zurück.
Techie_Gus
2
In QGIS 3 und höher ist diese Funktion bereits integriert. Sie finden sie unter Record and Attributesim Expression String Builder. Außerdem müssen Sie den Ebenennamen nicht mehr eingeben und nicht vergessen, zwischen isund einen Unterstrich zu setzen selected. Hier ist ein Beispiel für QGIS 3 und höher: is_selected().
Thequerist
12

Kristina, ich nehme an, es gibt ein Attribut in Ihrer Tabelle, mit dem Sie eine einzelne Spur identifizieren können. Beispielsweise:

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

Wenn Sie die Attributtabelle öffnen, finden Sie ein Epsilon-Symbol (in der folgenden Abbildung das vierte).

Bildbeschreibung hier eingeben

Auf diese Weise können Sie einen Ausdruck eingeben. beispielsweise:

"track_id" = 24

Wenn Sie bestätigen, werden alle Zeilen ausgewählt, die Ihrem Ausdruck entsprechen (dh alle Punkte, die zur Spur mit track_idX gehören). Wenn Sie dann auf die Lupenschaltfläche klicken, zoomt QGIS auf Ihre Auswahl im Kartenbereich. Die ausgewählten Features (Punkte in Ihrem Fall) werden hervorgehoben.


Sie können einen regelbasierten Stil anwenden. Als solches können Sie eine einzelne Schiffsspur mit einem bestimmten Symbol oder Marker anzeigen und alle anderen Punkte nicht anzeigen, indem Sie ihnen einen "unsichtbaren" Marker geben. Der Screenshot (Teil von Layereigenschaften) unten erklärt, wie es funktioniert:

  • Regel 1: Wende den angegebenen Marker auf alle Punkte mit einem Wert von 24 für an track_id
  • Regel 2: Wenden Sie den angegebenen Marker (einen Kreis mit weißer Füllung und weißem Rand ...) auf alle Punkte an, die einen track_idWert von 24 nicht erfüllen

Bildbeschreibung hier eingeben

Tatsächlich sind noch alle Punkte vorhanden (wenn Sie sie weiß machen, dauert das Rendern nicht so lange), aber Ihre Augen können sich entspannen!

kadéem
quelle
Vielen Dank für deine Antwort Kadeem! Ich bin mir der Auswahlfunktion bewusst und das funktioniert gut. Ich habe jedoch buchstäblich 500.000 Punkte auf kleinem Raum und es reicht nicht aus, nur die gesuchten Tracks hervorzuheben. Die Karte ist immer noch zu überfüllt und verwirrend. Wissen Sie, ob es eine Möglichkeit gibt, alle nicht ausgewählten Punkte oder ähnliches zu blockieren?
Kristina
2
Ich habe meine Antwort mit einer anderen Option unterhalb der Zeile bearbeitet. Ich denke, das wird dir helfen.
Kadéem
Kadeem, das ist so einfach, aber effektiv - tolle Idee, vielen Dank!
Kristina