Pages: 1
- Sujet précédent - QGIS: Deplacer des points sur le centroide par traitement - Sujet suivant
#1 Fri 05 May 2023 16:42
- leo_lgrc
- Juste Inscrit !
- Date d'inscription: 19 Dec 2022
- Messages: 6
QGIS: Deplacer des points sur le centroide par traitement
Bonjour,
J'ai une multitude de points contenus dans des polygones que j'aimerais déplacer automatiquement sur le centroïde du polygone grâce à un traitement. Savez-vous si cela est possible ?
Merci,
Hors ligne
#2 Mon 08 May 2023 10:47
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3928
Re: QGIS: Deplacer des points sur le centroide par traitement
Bonjour,
ATTENTION A SAUVEGARDER LA COUCHE QUELQUE PART AVANT TOUT ESSAI
La calculatrice de champ permet de modifier aussi la géométrie des entités (choisir <geometry> tout en bas de la liste déroulante des champs à mettre à jour). En récupérant la géométrie du centroïde du polygone (avec overlay_within), vous pouvez lui affecter cette valeur.
La même chose devrait être possible avec l'algorithme géométrie par expression
Hors ligne
#3 Wed 10 May 2023 10:18
- leo_lgrc
- Juste Inscrit !
- Date d'inscription: 19 Dec 2022
- Messages: 6
Re: QGIS: Deplacer des points sur le centroide par traitement
Bonjour, merci pour votre réponse. Malheureusement, je ne suis pas familier des expressions sur Qgis. J'ai essayé de mettre à jour mon champs <geometry> de ma couche des points avec l'expression suivante :
Code:
overlay_within('centroides_62f94e2e_9de0_4809_947d_26dcdb561f4b',$geometry)
Le traitement se fait rapidement mais il ne se passe rien en sortie.
Hors ligne
#4 Wed 10 May 2023 10:42
- leo_lgrc
- Juste Inscrit !
- Date d'inscription: 19 Dec 2022
- Messages: 6
Re: QGIS: Deplacer des points sur le centroide par traitement
J'ai également essayé ceci. En vain.
Code:
overlay_within('centroides_62f94e2e_9de0_4809_947d_26dcdb561f4b',@geometry)
Hors ligne
#5 Wed 10 May 2023 14:51
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 426
Re: QGIS: Deplacer des points sur le centroide par traitement
Bonjour,
Tu y étais presque. Il faut faire un overlay_within directement avec ta couche de polygones et pas avec une couche de centroïdes.
L'expression suivante devrait fonctionner.
Code:
array_first(overlay_within('polygones',centroid($geometry)))
Explications :
overlay_within('polygones',centroid($geometry)) permet de récupérer le centroïde du polygone à l'intérieur duquel est le ponctuel
array_first() permet de récupérer le premier centroide renvoyé par la fonction overlay_within qui renvoie une liste de géométries, même s'il n'y en a qu'une seule c'est une liste de 1 et ça ne fonctionne pas pour donner à manger à la calculatrice de champs pour la mise à jour de la géométrie.
Pour info, je n'avais jamais fait ça, pour trouver la bonne expression j'ai tâtonné en me servant de la symbologie et les générateurs de géométrie. C'est super pratique car on a rapidement le résultat, avant de modifier pour de vrai les données.
Dernière modification par p.jeremie (Wed 10 May 2023 14:53)
Hors ligne
#6 Thu 11 May 2023 12:29
- leo_lgrc
- Juste Inscrit !
- Date d'inscription: 19 Dec 2022
- Messages: 6
Re: QGIS: Deplacer des points sur le centroide par traitement
Bonjour,
Merci beaucoup pour la solution et l'explication, ça fonctionne !
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Deplacer des points sur le centroide par traitement - Sujet suivant