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

Printemps des cartes 2024

#1 Fri 10 June 2022 14:56

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1622

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: 981

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: 981

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 wink
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: 1622

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: 1622

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: 981

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: 1622

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: 981

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: 1622

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: 1622

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: 981

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: 1622

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: 981

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: 1622

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: 981

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: 1622

Re: QGIS: Creer automatiquement un polygone avec taille et forme voulue

Je pense qu'une formation s'impose. Merci de vos conseils.

Hors ligne

 

Pied de page des forums

Powered by FluxBB