#1 Fri 19 January 2018 07:59
- Allan
- Juste Inscrit !
- Date d'inscription: 18 Jan 2018
- Messages: 1
QGIS: Référencer les nœuds amont/aval d'une ligne
Bonjour tout le monde,
Je dispose d'une couche de ligne et d'une couche de point.
Chaque ligne possède un nœud amont et aval (référencer dans la couche point).
Je souhaite faire apparaître dans ma table attributaire l'ID des nœuds amont et d'autre part l'ID des nœuds aval.
C'est à dire:
Couche de point
ID
1
2
3
4
5
6
Couche ligne
ID Nœud amont Nœud aval
1 1 2
2 3 4
3 5 6
Après de multiples recherches impossible de trouver une solution "directe". Sans passer par de multiples étapes.
Existe t-il une méthode, à partir du calculateur d'expression par exemple, pour obtenir facilement ce type de résultat?
Merci par avance,
Hors ligne
#2 Fri 19 January 2018 12:05
- Ratonlaveur
- Participant occasionnel
- Date d'inscription: 25 Aug 2017
- Messages: 40
Re: QGIS: Référencer les nœuds amont/aval d'une ligne
Bonjour
J'ai testé avec succès la dernière réponse/méthode exposée sur cette page
https://gis.stackexchange.com/questions … gis/208893
Hors ligne
#3 Fri 19 January 2018 15:51
Re: QGIS: Référencer les nœuds amont/aval d'une ligne
Bonjour,
Cela est possible. Mais il faut dans un premier temps, pour plus de simplicité, configurer une relation entre la couche de lignes et de points.
Pour cela, il faut rajouter une clé étrangère à la couche de points contenant l'id de la ligne à laquelle chacun appartient : idligne. Il doit être possible de le récupérer, si vous ne l'avez pas déjà, par une requête d'intersection.
Vous auriez alors deux tables de structures suivantes :
points :
- idpoint
- idligne
lignes :
- idligne
Ensuite, il faut configurer une relation entre lignes et points : projet > Propriétés du projet, par ex. appelé myrelation
Voir https://docs.qgis.org/2.14/fr/docs/user … -relations
Enfin, on peut créer deux champs virtuels dans lignes de nom idamont, idaval qui :
pour le premier aura comme code :
Code:
relation_aggregate(relation:='myrelation',aggregate:='q1',expression:="idpoint")
Pour le second :
Code:
relation_aggregate(relation:='myrelation',aggregate:='q3',expression:="idpoint")
q* fait référencer aux quantiles. Du coup, sur deux valeurs, le premier quantile est la valeur minimale, le second la valeur maximale.
edit : je n'avais pas vu la réponse du dessus qui convient aussi, sans doute, quoiqu'elle semble plus complexe
geodata au cerema et petits billets en géomatique
Hors ligne