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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 02 December 2022 01:58

lylambda
Participant actif
Date d'inscription: 31 Aug 2016
Messages: 127

QGIS: Couche de lignes depuis 1 seule couche de points lies

Bonjour,
Je cherche à créer une couche de lignes à partir d'une couche de points.
La couche de point est structurée sous la forme de l'exemple suivant :

Point | Points liés
A      | B
B      | A -D - F
C      | E
D      | B -F
E      | C
F      | B - D
G      | NULL

Mon objectif est de générer une couche de lignes faisant apparaitre ces relations, déterminées par les champs "Point" et "Points liés".
C'est à dire, pour l'exemple ci-dessus, les segments suivants  : AB, BD, BF, CE, DF

Graphiquement, cela pourrait donner :

A-----B---D
          |   /    C----E
          |  /   
          | /         G
          F

J'ai essayé sans succès avec les traitements "Points vers lignes" ou "Rejoindre par des lignes".
Soit je m'y prend mal, soit ces traitements ne sont pas adaptés au besoin évoqué.

Pourriez-vous m'orienter ?
Merci !

Hors ligne

 

#2 Wed 07 December 2022 09:26

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1087

Re: QGIS: Couche de lignes depuis 1 seule couche de points lies

Bonjour,

Un début de réponse par ici (en italien) : https://isolution.pro/it/q/gi13352182/g … n-le-linee

Hors ligne

 

#3 Thu 08 December 2022 10:08

lylambda
Participant actif
Date d'inscription: 31 Aug 2016
Messages: 127

Re: QGIS: Couche de lignes depuis 1 seule couche de points lies

Apparemment, c'est plus une solution pour générer une géométrie et non créer une nouvelle couche, mais c'est une bonne piste smile
Merci, je vais regarder ça !

Pour info, remplacer "it" par "fr" dans l'adresse transmise donne une traduction correct en français.

Hors ligne

 

#4 Fri 09 December 2022 10:13

lylambda
Participant actif
Date d'inscription: 31 Aug 2016
Messages: 127

Re: QGIS: Couche de lignes depuis 1 seule couche de points lies

De ce que je comprend, que ce soit pour générer une géométrie via la symbologie ou créer des lignes via le traitements "Rejoindre par des lignes (lignes de hub)", il faut que je remanie la couche initiale.

Après l'avoir étudiée de manière plus approfondie, ma couche de travaille semble être en fait une liste de points "parents" (ou "pivot" ou "hub") avec un champ listant les points "enfant" (ou "pointe" ou  "spoke").


La représentation graphique que je cherche à obtenir est la suivante :

A<-----B--->D
           |                C---->E
           |     
           |                   G
          \/
           F------>H



Basée sur une couche structurée sous la forme suivante :

Liste | Enfant
A      |
B      | A -D - F
C      | E
D      |
E      |
F      | H
G      |
H      |

>> Ainsi chaque élément du champ "Liste" est en réalité un "Parent" pouvant avoir zéro à plusieurs "Enfant".
Tandis qu'un "Enfant" n'aura toujours que zero ou un seul "Parent" (contrairement à l'exemple sur mon 1er message).

Pour pouvoir créer des lignes dans QGIS, reliant chaque élément de "Liste" à ses "Enfant" (techniquement, un Oursin d’après la doc que j'ai trouvé), je dois afficher la relation inverse.
C'est à dire, créer un champ indiquant l'éventuel "Parent" de chaque élément de "Liste". Soit, pour reprendre l'exemple ci-dessus :

Liste  | Enfant     | Parent
A       |               |  B
B       | A -D - F  |
C       | E            |
D       |               |  B
E       |               |  C
F       | H            |  B
G       |               |
H       |               |  F



Et c'est là que j'ai besoin d'aide :
Par quelle formule puis-je renseigner entité par entité l'éventuel "Parent" ?

Concrètement, il faut que je demande à QGIS via une expression, d'indiquer dans le champ "Parent" de chaque entité, la valeur de "Liste" d'une autre entité de la table si sa valeur "Enfant" contient la valeur de "Liste" de l'entité.

Exemple : Si "Liste" = 'A' alors "Parent" = 'B, puisque "Liste" = 'B' correspond à "Enfant" contenant 'A'

J'avoue ne pas maitriser les fonctions comme aggregate...
Si ce puzzle vous parait simple, je suis prenneur de votre solution !

Dernière modification par lylambda (Fri 09 December 2022 10:36)

Hors ligne

 

Pied de page des forums

Powered by FluxBB