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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 20 January 2023 09:19

upriste
Participant occasionnel
Date d'inscription: 14 Feb 2019
Messages: 48

QGIS 3.26: Saisie automatique de champs par d'autres par intersection

Bonjour,

J'ai des 'ponctuels' a créer que je superpose au plan cadastral. J'ai également le linéaire de voie en habillage.

Je souhaite que certains champs de ma couche "ponctuels" se renseignent automatiquement à partir des champs provenant des couches du cadastre et du lineaire de voies. Par intersection dirons nous.

Les champs à renseigner de ma couche 'ponctuel' sont : "insee", "nomcommune", "numparcelle", "adresse". Ils se trouvent comme suit :

Couche 'commune' ==> "nomcommune"
Couche 'parcelles' ==> "numparcelles"
Couche 'voirie' ==> "adresse"

Lorsque je créé un nouveau 'pontuels' je souhaite donc que ma table attributaire soit rempli automatiquement par les valeurs indiquées. Une precision pour la couche voirie, comme le pon,ctuel risque de ne pas créé sur le lineaire a proprement parler il faudrait qu'il me recupere l'adresse la plus proche.

Faut-il passer par des couches virtuelles ou par des champs virtuels ou les 2 ?
Merci de votre aide.

Hors ligne

 

#2 Fri 20 January 2023 09:47

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1087

Re: QGIS 3.26: Saisie automatique de champs par d'autres par intersection

Bonjour,

Dans les propriétés de la couche 'ponctuel', rubrique 'formulaire', puis dans le panneau de droite 'défaut', il faut, pour chaque champ ("insee", "nomcommune", "numparcelle", "adresse"), paramétrer l'expression qui suit le modèle suivant - dans cet exemple, je récupère le code insee de la couche commune par intersection spatiale :

Code:

aggregate(
 layer:= 'commune',
 aggregate:='max',
 expression:="insee",
 filter:=intersects($geometry, geometry(@parent))

Pour que le champ se mette à jour automatiquement si jamais vous changez l'emplacement de la géométrie ponctuelle, veillez à bien cocher l'option 'Appliquer la valeur par défaut sur la mise à jour'.

A noter que vous pouvez à la place de l'expression ci-dessus, utiliser une expression avec la fonction

Code:

overlay_intersects(

)

Hors ligne

 

#3 Fri 20 January 2023 11:19

upriste
Participant occasionnel
Date d'inscription: 14 Feb 2019
Messages: 48

Re: QGIS 3.26: Saisie automatique de champs par d'autres par intersection

Merci de votre retour rapide. Je n'avais pas pensé au formulaire.
J'ai essayé, l'expression est invalide ==> syntax error, unexpected $end, expecting COMMA or ')'

EDIT j'ai trouvé avec une autre méthode :
J'ai inséré l'expression suivante

array_to_string(overlay_intersects('Communes',   nomcommunes   ))

Merci

Dernière modification par upriste (Fri 20 January 2023 11:42)

Hors ligne

 

#4 Fri 20 January 2023 12:19

upriste
Participant occasionnel
Date d'inscription: 14 Feb 2019
Messages: 48

Re: QGIS 3.26: Saisie automatique de champs par d'autres par intersection

Maintenant comment faire pour récupérer la valeur du champs "adresse" de la couche 'voirie' sachant que le point adresse peut se situer à une certaine distance? J'imagine intercaler un buffer dans l'expression mais je sèche.

Hors ligne

 

#5 Sat 21 January 2023 17:01

liege67
Participant actif
Lieu: Liège
Date d'inscription: 10 Apr 2014
Messages: 142

Re: QGIS 3.26: Saisie automatique de champs par d'autres par intersection

voir avec overlay_nearest peut être
et merci pour le code précédent ;-)

Hors ligne

 

#6 Sat 21 January 2023 18:26

liege67
Participant actif
Lieu: Liège
Date d'inscription: 10 Apr 2014
Messages: 142

Re: QGIS 3.26: Saisie automatique de champs par d'autres par intersection

voici ce que j'ai utilisé pour ajouter un nom de rue à une couche de bâtiments, depuis la couche (ligne) avec les noms de voirie

array_to_string(overlay_nearest(layer:='Flemalle_voirie',expression:= name, max_distance:= 25, limit:=1))

Hors ligne

 

#7 Fri 27 January 2023 08:25

upriste
Participant occasionnel
Date d'inscription: 14 Feb 2019
Messages: 48

Re: QGIS 3.26: Saisie automatique de champs par d'autres par intersection

liege67 a écrit:

voici ce que j'ai utilisé pour ajouter un nom de rue à une couche de bâtiments, depuis la couche (ligne) avec les noms de voirie

array_to_string(overlay_nearest(layer:='Flemalle_voirie',expression:= name, max_distance:= 25, limit:=1))


Bonjour, merci ça fonctionne très bien smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB