Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Thu 25 July 2024 04:04

Matthew59
Juste Inscrit !
Date d'inscription: 24 Jul 2024
Messages: 4

QGIS: importer des numeros de points a une table polyligne

Bonjour

Je suis nouveau ici et dans le SIG

Sous QGIS, je voudrais pouvoir apporter directement des noms de points provenant de plusieurs tables à des champs dans un table polyligne

Pour expliquer plus en détails :

J'ai plusieurs tables contenant des points, correspondants à des plaques d'assainissement et autres.

Il faut que je relis ses plaques en représentant les tronçons d'assainissement
Je vais dessiner mes polylignes, de façon à ce que mon premier corresponde à mon point amont et le second le point aval .

Je voudrais donc renseigner dans ma table tronçon les points amont et aval de manière automatique

Avez vous une idée si c'est possible de faire ca assez facilement ?

Merci d'avance pour votre aide smile

Hors ligne

 

#2 Thu 25 July 2024 06:45

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: QGIS: importer des numeros de points a une table polyligne

Bonjour,

Si j'ai bien compris votre besoin, vous devriez pouvoir suivre la méthode expliquée ici https://www.sigterritoires.fr/index.php … avec-qgis/

Résumé : utilisation de l'outil de traitement "Points vers ligne" en précisant la couche source de points, l'attribut d'ordre des points et l'attribut de regroupement (un id pour vos tronçons d'assainissement).

Hors ligne

 

#3 Thu 25 July 2024 08:36

Matthew59
Juste Inscrit !
Date d'inscription: 24 Jul 2024
Messages: 4

Re: QGIS: importer des numeros de points a une table polyligne

Bonjour
Merci pour l'aide, mais ce n'est pas vraiment comme ca que je vais procéder.

Je vais cliquer manuellement les tronçons, et je voudrais que le numéro du point de départ et du point d'arrivée, s'ajoutent dans la table attributaire pour chaque polyligne

smile

Hors ligne

 

#4 Thu 25 July 2024 10:31

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: QGIS: importer des numeros de points a une table polyligne

Ce qui ne va pas être évident c'est que vos points sont répartis dans plusieurs couches.

Un méthode possible en utilisant la calculatrice de champ sur la table des tronçons d'assainissement, autant de fois qu'il y a de table points :

Code:

aggregate('nom_table_point',
          aggregate:='concatenate',
          expression:="champ_table_point",
          filter:=intersects($geometry,point_n(geometry(@parent),1)),
          concatenator:='/')

Ça permet d'aller concaténer toutes les valeurs du champ_table_point dans la table nom_table_point, pour le premier point constituant chaque ligne de la table en édition (tronçons d'assainissement).
Idem pour le dernier point :

Code:

aggregate('nom_table_point',
          aggregate:='concatenate',
          expression:="champ_table_point",
          filter:=intersects($geometry,point_n(geometry(@parent),-1)),
          concatenator:='/')

Seule différence, le -1 dans la fonction point_n() qui permet de récupérer le dernier point au lieu du premier.

Le souci, c'est que si aucune référence n'est trouvée, alors la fonction va venir écraser une valeur déjà présente dans la colonne qu'on met à jour (num_depart ou num_arrivee).
Pour éviter ça, il suffit de prendre en priorité la valeur déjà présente, par exemple en utilisant coalesce() qui prend la première valeur non null dans l'ordre des arguments qu'on lui donne.

Code:

coalesce("num_arrivee",
         aggregate('nom_table_point',
                  aggregate:='concatenate',
                  expression:="champ_table_point",
                  filter:=intersects($geometry,point_n(geometry(@parent),-1)),
                  concatenator:='/')
)

Dernière modification par p.jeremie (Thu 25 July 2024 10:32)

Hors ligne

 

#5 Thu 25 July 2024 11:33

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS: importer des numeros de points a une table polyligne

Bonjour,

Ce qui ne va pas être évident c'est que vos points sont répartis dans plusieurs couches.


On peut créer une couche virtuelle (ou pas) dans lequel on regrouperait tous les points + le champ duquel on veut prendre l'info (+ peut-être le nom de la couche origine).
Par contre je n'a pas bien compris l'idée de la concaténation, pensant que Matthew voulait juste LE point auquel il s'est accroché. Mais après tout, s'il n'y en a qu'un, ce devrait être bon, je pense (si on met de côté les éventuelles caprices de la fonction intersects avec les arrondis de coordonnées).

En ligne

 

#6 Thu 25 July 2024 13:30

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: QGIS: importer des numeros de points a une table polyligne

En effet j'avais aussi pensé à la couche virtuelle qui regroupe les couches de points, mais comme ça ajoutait une complexité supplémentaire je n'en ai pas parlé dans un premier temps.
Pour la concaténation, en effet, ça devrait toujours retourner un seul point donc ça ne concaténera jamais rien d'autre.
Pour les arrondis de coordonnées, il faudrait ajouter une tolérance, par exemple en arrondissant les coordonnées à X décimales..

Tu as une meilleure proposition que la fonction aggregate pour aller récupérer le point d'une couche point intersectant le premier point de chaque tronçon ? Si oui, je suis intéressé de savoir laquelle.

Hors ligne

 

#7 Thu 25 July 2024 16:11

Matthew59
Juste Inscrit !
Date d'inscription: 24 Jul 2024
Messages: 4

Re: QGIS: importer des numeros de points a une table polyligne

Merci pour votre aide

J'arrive bien à remplir les champs
Le seul soucis, c'est que quand je lance la calculatrice une deuxième fois pour aller chercher les informations d'une autre table, les champs remplis lors du premier calcul sont supprimés ...
Est ce qu'il existe une astuce pour éviter ca ?


Ou bien est ce possible avec un seul calcul d'aller chercher les valeurs dans des champs différents de 2 tables ?

Ou oui sinon faire une table intermédiaire qui reprend tous les points de toutes les tables et ca remplirait d'un seul coup les chances dans la table finale
mais malheureusement je ne sais pas faire

Hors ligne

 

#8 Thu 25 July 2024 16:23

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: QGIS: importer des numeros de points a une table polyligne

Relire mon message avec les formules, pour éviter de supprimer les valeurs récupérées au premier calcul, utiliser coalesce().

Hors ligne

 

#9 Thu 25 July 2024 16:51

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS: importer des numeros de points a une table polyligne

Matthew59 a écrit:

Ou oui sinon faire une table intermédiaire qui reprend tous les points de toutes les tables et ca remplirait d'un seul coup les chances dans la table finale
mais malheureusement je ne sais pas faire


Relire mon précédent message où je mentionne cette option, AVEC des liens vers deux façons différentes d'y arriver.

En ligne

 

#10 Fri 26 July 2024 15:08

Matthew59
Juste Inscrit !
Date d'inscription: 24 Jul 2024
Messages: 4

Re: QGIS: importer des numeros de points a une table polyligne

super merci pour votre aide

ca semble fonctionner

Hors ligne

 

Pied de page des forums

Powered by FluxBB