banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

State Of The Map 2024

#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: 162

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

 

Pied de page des forums

Powered by FluxBB