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

GEODATA DAYS 2024

#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: 3883

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

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

 

Pied de page des forums

Powered by FluxBB