[FOSSGIS-Talk] QGIS: "Attribut nach Position verknüpfen" im Ausdruckseditor?

G. Wagner, Wagner-IT info at wagner-it.de
Do Okt 26 21:11:00 CEST 2023


Moin Claas,

vielen Dank. Werde ich testen.
Ich sehe schon, die Syntax ist nicht unbedingt das Problem (array_to_string ist z.Bsp. gut beschrieben). Aber man muss einfach wissen was es alles gibt und was man mit machen kann.
Das kann ja vermutlich wahnsinnig verschachtelt werden.

Ich hatte neulich die Anfrage alle benachbarten Flurstücke eines Flurstückes aufzulisten (z.Bsp. im Atlasblatt). Dachte das geht nicht ohne größere Klimmzüge.
Aber da könnte man vermutlich mit arry_to_string, overlay_intersects  und buffer arbeiten - oder? Muss ich mal testen.

Die nächste FOSSGIS steht ja an. Hast Du nicht Lust dazu eine Demo-Session oder einen Workshop zu machen? Denn da gibt´s ja sicherlich noch einiges mehr an interessanten Dingen...

Schönen Abend und Grüße

Günter


-----Ursprüngliche Nachricht-----
Von: Claas Leiner <claas.leiner at gkg-kassel.de> 
Gesendet: Donnerstag, 26. Oktober 2023 20:48
An: G. Wagner, Wagner-IT <info at wagner-it.de>; fossgis-talk-liste at fossgis.de
Betreff: Re: [FOSSGIS-Talk] QGIS: "Attribut nach Position verknüpfen" im Ausdruckseditor?

Moin Günther,

In Deinem Fall würde es reichen, den array einfach als text auszugeben.
Mit  array_to_string( ) erhälts Du eine kommaseparierte Liste der Flurstücksnummern.

  array_to_string(
	overlay_intersects(
	layer:=	'flurstuecke',
	expression:= "lagebezeichnung"		
	)
)

  Einzelne Werte des Arrays bekommst Du, in dem ein Zahlwerte in eckige Klammern hinten angestellt wird: [0] für den ersten Werte [1] für den zweiten Wert u.s.w

overlay_intersects(
	layer:=	'flurstuecke',
	expression:= "lagebezeichnung"		
	)[0]


mit array_foreach() kannst Du einen Ausdruck auf jeden Eintrag des array
anwenden:
array_foreach(
    overlay_intersects(
	layer:=	'flurstuecke',
	expression:= "lagebezeichnung"		
	 ),
     substr(@element,3,3)
    )
Dieses Beispiel würde aus dem Flurstückskennzeichen jeweils ab dem 3. 
Zeichen 3 zeichen extrahieren. @element steht für den einzelnen Eintrag des Arrays.

Grundsätzlich ist es eine spannende Sache mit diesen Listenfeldern.
Ich nutze dass viel bei einem großen Wanderwege-GIS Projekt, bei dem in NRW über 4000 Routen zu organisieren sind. Auf einem einzelnen Wegeabschnitt verkaufen eine bis 14 Routen. Die werden dann in einer Spalte als Array erfasst.

Viele Grüße, Claas

--
-----------------------------------------
GKG-Kassel - Dr.-Ing. Claas Leiner
QGIS-Support und mehr

Geodatenservice, Kartenwerkstatt &
GIS-Schule Kassel

Wilhelmshöher Allee 304 E
34131 Kassel
Tel. 0561/56013445
claas.leiner at gkg-kassel.de
----------------------------------------
http://www.gkg-kassel.de
----------------------------------------
Unterstützen Sie QGIS
QGIS-DE e.V. | http://qgis.de
QGIS Projekt | http://qgis.org/de/site/




Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste