Pages: 1
- Sujet précédent - QGIS: Creer automatiquement un polygone avec taille et forme voulue - Sujet suivant
#1 Fri 10 June 2022 14:56
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
QGIS: Creer automatiquement un polygone avec taille et forme voulue
Bonjour,
Je désire créer des plateformes de travaux au pied de pylônes électriques dont le type sera :
- Assemblage Pylône (10*5m)
- Déroulage (10*10m)
- Génie Civil (10*10m)
- Grue (15*10m)
Est-l possible de créer automatiquement les plateformes avec ces mesures en fonction de leur type?
Comme pistes, je pense à :
- sur une couche de points, je crée un point, je choisis le type, ce qui va automatiquement créer une plateforme avec la forme voulue
- sur une couche de polygone, je crée un polygone, je choisis le type, ce qui va automatiquement mettre à jour à la bonne forme de plateforme voulue.
Merci.
Hors ligne
#2 Fri 10 June 2022 17:46
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
C'est possible par exemple avec le générateur de géométries sur une couche de points (dans "Type de symbole > Générateur de géométrie").
Mais, il va manquer une info sur la couche de point, pour créer les polygones : c'est leur orientation.
Si on part sur une orientation Nord-Sud des polygones, ça peut s'écrire comme ça :
Code:
CASE WHEN "type"='Assemblage Pylône' THEN make_square( translate( $geometry, -5,-2.5),translate( $geometry, 5,2.5)) WHEN "type"='Déroulage' THEN make_square( translate( $geometry, -5,-5),translate( $geometry, 5,5)) ELSE ... END
A compléter si vous comprenez la logique.
Mais si il faut rajouter l'orientation des polygones, là comme ça rapidement, je vois pas.
Mais c'est forcément possible : faut creuser les fonctions géométriques, une fois que vous avez pigé le principe du générateur de géométries, et des "CASE WHEN" (=SQL).
Bon courage !
Sylvain M.
Hors ligne
#3 Fri 10 June 2022 18:07
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Je me suis complètement planté dans ma formule de génération de géométrie ! Ce n'est pas make_square, ni translate !!!
Voici une formule qui marche pour un réctangle centré sur le point, de 10x5m :
Code:
make_rectangle_3points(make_point($x - 5, $y - 2.5), make_point($x + 5, $y - 2.5), make_point( $x + 5, $y + 2.5))
A adapter selon le placement du 1er point du rectangle
Voir documentation de la fonction :
https://docs.qgis.org/3.22/fr/docs/user … le-3points
Et à orienter si besoin :
https://docs.qgis.org/3.22/fr/docs/user … tml#rotate
Dernière modification par Sylvain M. (Fri 10 June 2022 18:11)
Sylvain M.
Hors ligne
#4 Sat 11 June 2022 15:58
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Merci. J'ai copié la dernière formule
make_rectangle_3points(make_point($x - 5, $y - 2.5), make_point($x + 5, $y - 2.5), make_point( $x + 5, $y + 2.5))
mais il me donne erreur de l'analyseur : fonction inconnue
Hors ligne
#5 Sat 11 June 2022 16:15
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Mais je vois 3 points (make_rectangle_3points) alors que je l'ai fait sur un seul point.
C'est bien à partir d'un seul point que l'on peut faire le polygone? Si oui, pourquoi 3 points?
Hors ligne
#6 Sat 11 June 2022 21:29
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
C'est bien à partir d'un seul point que l'on peut faire le polygone? Si oui, pourquoi 3 points?
Soit un rectangle ABCD
Le 1er point définit l'origine (A).
Le 2e point (B) définit la largeur (AB)
Le 3e point (D) définit la longueur (AD)
Le 4 point (C) est déduit des 3 autres.
Pour le 1er point, "make_point($x - 5, $y - 2.5)" veut dire, -5m par rapport au X du point, -2.5m par rapport au Y du point.
Dernière modification par Sylvain M. (Sat 11 June 2022 21:33)
Sylvain M.
Hors ligne
#7 Sat 11 June 2022 22:21
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Ok je comprends mais il y a toujours un message d’erreur
Hors ligne
#8 Sat 11 June 2022 23:07
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
La formule doit fonctionner avec une couche de points.
Si c'est une couche de polygones, il faut remplacer $x par centroid($geometry)
Dernière modification par Sylvain M. (Sat 11 June 2022 23:07)
Sylvain M.
Hors ligne
#9 Sun 12 June 2022 00:11
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Donc je crée une couche de points, je crée un point et ensuite j’insère la formule? C’est ça?
Hors ligne
#10 Sun 12 June 2022 14:15
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Je viens de me rendre compte que cette expression ne change que la symbologie de la couche de points. Le type de couche à l'arrivée doit être du polygone et non une couche de points.
Ce qu'il faut c'est, à partir d'une couche de polygones, créer des entités avec des surfaces voulues.
Je désire créer des plateformes de travaux au pied de pylônes électriques dont le type sera :
- Assemblage Pylône (10*5m)
- Déroulage (10*10m)
- Génie Civil (10*10m)
- Grue (15*10m)
Hors ligne
#11 Mon 13 June 2022 10:10
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Dans ce cas là, je le ferai en SQL spatial (Spatialite ou PostGis) plutôt qu'en générateur de géométrie.
Mais sont quasi les mêmes fonctions !
Sylvain M.
Hors ligne
#12 Mon 13 June 2022 10:51
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Merci pour votre réponse.
Si je comprends bien, je crée d'abord un polygone de n'importe quelle forme et taille. Ensuite en entrant l'expression, le polygone aurait la forme voulue?
Hors ligne
#13 Tue 14 June 2022 14:51
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Si vous utilisez le gestionnaire de bases de données pour votre requête SQL spatiale, vous serez obligé de créer une nouvelle couche.
Mais si vous stockez vos données dans une base Spatialite ou PostGis, vous pourriez faire un UPDATE du champ géométrie via la requête SQL spatiale, donc directement sur les données (quelle que soit la géométrie source), sans avoir à créer une nouvelle couche.
Sur un Shapefile (ou autre fichier hors BDD), c'est peut-être possible aussi mais je ne sais pas faire.
Sylvain M.
Hors ligne
#14 Tue 14 June 2022 20:53
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Je ne connais pas ces systèmes de gestionnaire de bases de données, ni spatialite ni Postgis (pour ne jamais l'avoir essayé).
Connaissez-vous des tutos à ce sujet?
D'autre part, la finalité est de le faire sur Qfield. Je me disais que d'abord il faut que ça marche dans Qgis.
Si jamais cela fonctionne avec des bases spatialite ou Postgis dans Qgis, cela fonctionnerait-il dans Qfield?
Merci.
Hors ligne
#15 Wed 15 June 2022 14:01
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Qfield peut embarquer des bases Spatialite, ou Geopackage et on peut faire du SQL spatial sur ces 2 formats.
Maintenant, pour apprendre le SQL spatial, il faut commencer par apprendre le SQL (au moins les notions), puis ajouter la composante spatiale.
C'est un investissement, mais l'intérêt c'est que c'est un language quasi universel, avec juste quelques subtiles différences d'un éditeur à l'autre.
Et ça ouvre tellement de perspectives en SIG.
Pour ce qui est de ton besoin, en tout cas, je ne connais pas d'autre solution plus facile : tu auras toujours besoin d'un minimum de code.
Un exemple de présentation intéressante du SQL spatial :
https://www.sigterritoires.fr/index.php … roduction/
Dernière modification par Sylvain M. (Wed 15 June 2022 14:04)
Sylvain M.
Hors ligne
#16 Wed 15 June 2022 19:40
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue
Je pense qu'une formation s'impose. Merci de vos conseils.
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Creer automatiquement un polygone avec taille et forme voulue - Sujet suivant