Pages: 1
- Sujet précédent - QGIS 3.26: Saisie automatique de champs par d'autres par intersection - Sujet suivant
#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
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
Hors ligne
Pages: 1
- Sujet précédent - QGIS 3.26: Saisie automatique de champs par d'autres par intersection - Sujet suivant