#1 Mon 27 April 2020 11:51
- vxTedxv
- Participant occasionnel
- Date d'inscription: 26 Jan 2011
- Messages: 26
QGIS: relier points hierarchises d'une meme couche
Bonjour,
Après une petite recherche infructueuse sur le forum, je vous expose mon souci.
J'aimerais relier dynamiquement des points d'une même couche entre eux en respectant une hiérarchie, ce qui donnerait ceci :
https://c.gmx.fr/@558060328512919611/tY … AUU3QlF-4Q
La couche est organisée schématiquement comme suit :
point niveau0 niveau1 niveau2
point A A A A
point B1 A B1 B1
point B2 A B1 B2
point C1 A C1 C1
point D1 A D1 D1
point D2a A D1 D2a
point D2b A D1 D2b
J'y suis parvenu grâce au générateur de géométrie dans la symbologie des points, qui crée une ligne entre les points (note : les points de niveau 0 font l'objet d'une symbologie à part, dépourvus de traits) :
Code:
CASE WHEN "niveau2" = "niveau1" THEN make_line( $geometry , geometry( get_feature( 'couche', 'niveau2', attribute( $currentfeature ,'niveau0')))) ELSE make_line( $geometry , geometry( get_feature( 'couche', 'niveau2', attribute( $currentfeature ,'niveau1')))) END
Décryptons : Si pour le point concerné par la symbologie, la donnée attributaire "niveau2" est la même que la donnée attributaire "niveau1" (cas des points de niveau 1), alors créer un segment entre le point concerné et le point dont le niveau 2 est le même que le niveau 0, sinon (cas des points de niveau 2), créer un segment entre le point concerné et le point dont le niveau 2 est le même que le niveau 1.
Hélas, cette solution ne me convient pas car cette symbologie dynamique n'est construite par QGis que si le point concerné est visible à l'écran. Autrement dit, en fonction du niveau de zoom, les traits peuvent disparaître car le point dont est issu le trait n'est pas dans l'emprise de la carte affichée.
Auriez-vous une solution alternative, toujours dynamique pour le cas où les relations devaient être modifiées, sans avoir à créer une couche dédiée à mes lignes ?
Hors ligne
#2 Tue 28 April 2020 10:10
- Julien81
- Participant assidu
- Lieu: Giroussens
- Date d'inscription: 14 Jan 2019
- Messages: 171
Re: QGIS: relier points hierarchises d'une meme couche
Bonjour,
une piste serait de générer une couche virtuelle (avec la requête sql qui va bien pour traduire votre expression) à partir de votre donnée source, ainsi vous pourriez après mise à jour n'avoir qu'à rafraichir (pas testé).
Sinon sous SGDB spatial (postgres/gis) avec une vue dynamique (requete) basée sur votre source. Dans l'un comme dans l'autre des cas ce devrait vous tracer automatiquement (rafraichir/recharger data) vos lignes respectant les conditions si vous implémentez des points dans votre source.
Dsl j'ai pas de concret sous la main,
bon courage
Hors ligne