Pages: 1
- Sujet précédent - QGIS: Attribut par intersection des extremites d'une polyligne - Sujet suivant
#1 Fri 24 January 2025 12:51
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 111
QGIS: Attribut par intersection des extremites d'une polyligne
Bonjour,
J'ai une couche de polylignes sous Qgis (en l'occurence des axes de voie). J'aimerai créer deux champs "voies_amont" et "voies_aval" qui indiquent les noms de voie concaténés des voies qui intersectent le point de départ et le point d'arrivée de chaque axe de voie.
Je me suis inspiré de précédents sujets de ce forum et j'ai utilisé ce type de requete dans la calculatrice de champ pour le champ "voies_amont":
Code:
Aggregate(@layer, aggregate:='concatenate',expression:="voie_nom_c",concatenator:=',', filter:=intersects($geometry,start_point(geometry(@parent))))
Cela fonctionne pas trop mal, les noms de voie intersectées sur le startpoint de chacune des mes voies remontent dans mon champ. Petit souci, pour chaque voie, son propre nom remonte aussi dans le champ. (voir ex en PJ)
Comment peut-on faire en sorte que Qgis ignore la propre voie en question dans la requete ?
Merci d'avance de votre aide
Hors ligne
#2 Fri 24 January 2025 17:31
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 4119
Re: QGIS: Attribut par intersection des extremites d'une polyligne
Bonjour,
Peut-être en comparant le id des entités dans le filtre. Non testé:
Code:
filter:=intersects($geometry, start_point(geometry(@parent))) AND @id != feature_id(@parent)
Hors ligne
#3 Sat 25 January 2025 11:46
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 111
Re: QGIS: Attribut par intersection des extremites d'une polyligne
Bonjour,
Peut-être en comparant le id des entités dans le filtre. Non testé:Code:
filter:=intersects($geometry, start_point(geometry(@parent))) AND @id != feature_id(@parent)
Re,
c'était effectivement dans l'esprit, la réponse m'a été soufflée, la voici:
Code:
aggregate(@layer, aggregate:='concatenate',expression:="voie_nom_c",concatenator:=',', filter:=intersects($geometry, start_point(geometry(@parent))) AND "voie_nom_c" != attribute(@parent, 'voie_nom_c'))
Cette modification ajoute une condition AND "voie_nom_c" != attribute(@parent, 'voie_nom_c') au filtre, ce qui exclut la voie courante de la concaténation.
Merci pour votre aide
Dernière modification par guibouvier (Sat 25 January 2025 11:46)
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Attribut par intersection des extremites d'une polyligne - Sujet suivant