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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce



#AGAURAGEO

1ère Biennale de l'Information Géographique
Lyon - 17 décembre 2019

http://agaurageo.fr/

#1 Wed 18 September 2019 12:43

ODJAC33
Membre
Date d'inscription: 6 Aug 2017
Messages: 146

QGIS: Segments traces a partir d Identifiants de points

Bonjour à tous,

Voici mon problème : j'ai dans un fichier excel, un onglet de points ayant un identifiant et des coordonnées. Jusque là, aucun problème pour les visualiser.

Dans un autre onglet du même fichier excel, j'ai des routes (ce sont des routes aériennes) passant par ces points.

Exemple : j'ai les points LUSEM, LULUT, URUNA, PEPAX, VAVIX (de coordonnées connues dans le 1° onglet) et dans le 2° onglet, j'ai 2 routes. Chacune des 2 routes a 3 attributs : un Identifiant, un Type et un attributs Points contenant l'identifiant des points par lesquels chacune des 2 routes passe.
Exemple Route 1 : LUSEM, LULUT, URUNA et Route 2 : LULUT, PEPAX, VAVIX.

Je voudrais trouver une méthode automatique pour visualiser mes routes sous forme de segments passant par les points identifiés dans l'attribut Points .

Merci d'avance.

Hors ligne

 

#2 Wed 25 September 2019 12:00

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1652
Site web

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour,

Voici une solution en PJ, mais qui ne marche qu'en visualisation

- Créer une couche de points
- Créer une couche appelée routes de type lignes et y ajouter autant de lignes que de routes (tant pis si la géométrie ne correspond pas) avec les noms de points séparés par des virgules
- Dans cette couche, aller en mode "générateur de géométrie" mode ligne / polyligne et y taper l'expression suivante :

Code:

 with_variable(
     'arr_feat',
     array_foreach(
        string_to_array("points" , ','),
        concat(x(geometry(get_feature('points', 'lib', @element))), ' ', 
                  y(geometry(get_feature('points', 'lib', @element))))
        ),
    geom_from_wkt('LINESTRING(' || array_to_string(@arr_feat, ',') ||  ')'
     )
 )

Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Geodata au Cerema et petits billets en géomatique

Hors ligne

 

#3 Sat 28 September 2019 11:25

ODJAC33
Membre
Date d'inscription: 6 Aug 2017
Messages: 146

Re: QGIS: Segments traces a partir d Identifiants de points

Merci beaucoup Mathieu pour cette solution que je vais expérimenter. Je l'ai visualisée sous QGIS 3.4 et cela correspond bien à ce que l'on souhaite.

En attendant, avec mes collègues, nous avons mis en forme le fichier des routes en créant un champ de type LineString (cf. pièce jointe). Ce qui nécessite pas mal de préparation sur Excel.

Question toute simple : quelle requête faut-il faire pour trouver les routes qui passent par un point?
Exemple : la rte 1 passe par les 5 points (LUSEM LULUT CNA POI PEPAX) et la rte 2 passe par les 4 points (LUSEM LULUT CNA MANAK).
Ces points apparaissent dans le champ Points.
Si je veux par exemple savoir quelles sont les routes qui passent par LUSEM et que je fais une requête : Points ilike LUSEM, cela ne fonctionnera pas car le champ Points ne contient pas que LUSEM, il faudrait faire une requête sur le champ Points qui contient la chaine de caractère LUSEM.

Merci de votre aide.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#4 Mon 30 September 2019 16:11

ODJAC33
Membre
Date d'inscription: 6 Aug 2017
Messages: 146

Re: QGIS: Segments traces a partir d Identifiants de points

J'ai trouvé, si je veux les routes qui passent par LUSEM, j'écris : "Points" like '%LUSEM%'

Mathieu, "aller en mode "générateur de géométrie" mode ligne / polyligne", comment fait-on pour accéder au générateur de géométrie?

Merci beaucoup.

Hors ligne

 

#5 Tue 01 October 2019 15:02

Grég.oire
Membre
Lieu: Toulouse
Date d'inscription: 19 Sep 2008
Messages: 10

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour,

Propriétés de la couche > onglet Symbologie (QGis 3) ou Style (QGis 2) > liste déroulante Type de symbole (QGis 3) ou Symbole  (QGis 2) > Générateur de géométrie


QGis 3.6.1  /  FME 2017.1  /  Windows 7

Hors ligne

 

#6 Thu 03 October 2019 15:44

ODJAC33
Membre
Date d'inscription: 6 Aug 2017
Messages: 146

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour et merci pour les pistes, je pense que je me rapproche du but

Ma couche de points provient d'un fichier excel que je transforme en CSV pour l'intégrer dans QGIS, (fichier joint Pointsok.csv).

Puis je créé donc une couche route en linéaire (appelée RoutesOK).
Mes étapes sont les suivantes :
- Je créé d'abord mes attributs (fichier joint Création attributs route.jpg),
- Puis j’alimente ma base dans la table d'attributs en ajoutant les routes les unes après les autres (fichier joint Alimentation de la base.jpg avec une seule route).
- Puis je créé la géométrie en mettant le code que vous m'avez indiqué (fichier joint Generateur de geometrie.jpg)

Et ... ma route ne s'affiche pas ... sad

Je n'arrive pas à détecter mon erreur, merci encore de votre aide.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#7 Mon 07 October 2019 14:42

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1652
Site web

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour,

Dans la colonne Nom_point, il faudrait supprimer les espaces après les virgules :

Code:

champ1,champ2,champ3

et non

Code:

champ1, champ2, champ3

Aussi, il me semble qu'il faille écrire:

Code:

string_to_array("Nom_point", ', ')

et non

Code:

string_to_array("Pointsok", ', ')

Geodata au Cerema et petits billets en géomatique

Hors ligne

 

#8 Sun 13 October 2019 11:51

ODJAC33
Membre
Date d'inscription: 6 Aug 2017
Messages: 146

Re: QGIS: Segments traces a partir d Identifiants de points

OK merci beaucoup

Hors ligne

 

#9 Sun 13 October 2019 17:34

ODJAC33
Membre
Date d'inscription: 6 Aug 2017
Messages: 146

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour Mathieu,
Je me permets de revenir vers vous sur ce thème car je galère, je vous joins une archive contenant mon projet QGIS et mes fichiers qui vont avec (ainsi que les vôtres).
Je cherche à faire passer une route de  Rtecyril par les 2 points LUSEM et LULUT qui sont dans Ptscyril en générant une géométrie tenant compte de votre code et de vos conseils. Mais, le wkt_geom reste toujours à NULL (alors que vous pourrez consulter mon code de génération de géométrie qui semble exact). Impossible de trouver pourquoi.
Merci de votre aide précieuse.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#10 Mon 14 October 2019 12:03

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1652
Site web

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour,

Je ne comprends paqs pourquoi ça ne marche pas
Essayez peut-être d'ajouter vos points et votre ligne aux couches qui fonctionnent, à savoir vers ptscyril → points et routeciryl → routes
Aussi, quand un exemple fonctionne avec une expression, si vous créez de nouvelles données, essayez de conserver les mêmes noms de champs, histoire de réduire le nb d'adaptations


Geodata au Cerema et petits billets en géomatique

Hors ligne

 

#11 Thu 17 October 2019 15:17

ODJAC33
Membre
Date d'inscription: 6 Aug 2017
Messages: 146

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour,

Ça s'améliore un peu, mais il reste des choses bien mystérieuses.

Je me permets de vous joindre de nouveau un projet QGIS contenant 4 couches :
- Points et routes sont vos couches,
- pointsMathieuCyril est une couche reprenant votre couche de points et dans laquelle j'ai rajouté 2 points : le point 5 et le point 6 (qui sont très loin des vôtres).
- RoutesMathieuCyril est une couche reprenant votre couche de routes et dans laquelle j'ai modifié la route n° 2 la faisant passer par les points 1, 5 et 6 (au lieu de 1,2 et 3).

En appliquant votre code de génération de géométrie à RoutesMathieuCyril (sous votre contrôle), j'ai bien une visualisation de 2 routes, la route 1, inchangée par rapport à la votre et la route 2 qui passe bien par les points 1, 5 et 6.

Mais, ce qui est très curieux, c'est que le WKT de la route 2 pointe vers les coordonnées des points 1,2 et 3 et non 1, 5 et 6 (du coup la visu de cette route n'est pas stable, suivant le niveau de zoom, elle s'affiche ou non).

Encore merci pour votre aide, je pense qu'on n'est pas loin smile.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#12 Thu 24 October 2019 17:39

ODJAC33
Membre
Date d'inscription: 6 Aug 2017
Messages: 146

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour Mathieu

Excusez moi, mais auriez-vous une solution suite à mon message précédent et à sa pièce jointe? (je dois faire une proposition pour un comité de projet début novembre).
Un grand merci d'avance si vous avez un peu de temps pour regarder cela.

Hors ligne

 

#13 Mon 28 October 2019 11:42

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1652
Site web

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour,

Personnellement, je ne vois d'incohérent dans votre couche RoutesMathieuCyril :
la première route passe bien par A, B et C
la seconde par 1,5,6
tel qu'indiqué

Cependant, l'affichage n'est pas stable, même pour moi, en QGIS 3.4

Je vous conseillerai donc de vous rabattre, pour plus de stabilité, sur une génération des couches lignes en "dur" via des couches virtuelles en SQL Spatialite, ou PostgreSQL/PostGIS
Mais il y a sans doute des plugins QGIS qui satisferont à votre demande. Regarder par exemple du côté de Points2One avec group features by (identifiant de votre ligne)

Quelques liens :
https://gis.stackexchange.com/questions … ts-in-qgis
https://www.sigterritoires.fr/index.php … with-qgis/


Geodata au Cerema et petits billets en géomatique

Hors ligne

 

#14 Mon 28 October 2019 16:55

ODJAC33
Membre
Date d'inscription: 6 Aug 2017
Messages: 146

Re: QGIS: Segments traces a partir d Identifiants de points

Bonjour Mathieu

OK merci beaucoup de ces renseignements que je vais exploiter.
Ce qui est très curieux, c'est que, même si ma deuxième route parvient à passer par les points 5 et 6 que j'ai créés, le WKT de cette route pointe constamment vers les coordonnées des points 2 et 3 (les vôtres), impossible de voir les coordonnées des points 2 et 3.
Très étrange!!!

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |