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 Thu 30 January 2020 22:16

phedin
Participant occasionnel
Date d'inscription: 7 Feb 2019
Messages: 22

Portal - récupération d'attributs issus de plusieurs entités

Bonjour,

Via une application de mise à jour, je cherche à faire remonter des informations d'autres couches, comme par exemple les numéros de parcelles, le zonage d'un PLU, etc...
L'action se fait relativement bien quand ma nouvelle entité ne comprend qu'une seule parcelle ou ne se situe que sur une seule zone du PLU mais cela se complique quand la nouvelle entité créée est à cheval sur plusieurs parcelles, zonage PLU, etc...

Je souhaiterais faire en sorte que les valeurs s'enchainent avec un séparateur fixe. Pour les parcelles cela pourrait donner "CB24, CB25, CB26".

Dans les webapp, j'arrive via les actions du widget de mise à jour intelligente a récupérer les infos pour le cas simple mais je n'ai pas l'impression qu'il existe qqch pr les intersections multiples.

Est ce que quelqu'un aurait une solution? ou a déjà travaillé sur ce type de problématique?

Je vous remercie d'avance!

Hors ligne

 

#2 Fri 31 January 2020 08:20

Arnaud_D
Membre
Date d'inscription: 9 Mar 2009
Messages: 88

Re: Portal - récupération d'attributs issus de plusieurs entités

Bonjour,

Alors faire ça directement dans ton portal (dans la webmap) ça va être compliqué je pense (pour ne pas dire impossible)

Mais par contre c'est assez facilement faisable via des règles attributaires de calcul (et une petite expression Arcade)
https://pro.arcgis.com/fr/pro-app/help/ … -rules.htm
https://pro.arcgis.com/fr/pro-app/help/ … ession.htm

Dans ton cas je pense que ça va donner un truc du genre

Code:

var NumParcelle = ""
var intersectLayer =Intersects(FeatureSetByName($datastore,"TA_COUCHE_PARCELLE"), $feature)
    for (var f in intersectLayer){
        NumParcelle  = NumParcelle  + f.LE_CHAMP_A_RECUPERER + ", "
    }
return NumParcelle

En gros le code va regarder les parcelles qui intersecte ta donnée et stocker les numéros dans une variable.


Arnaud DESSENT

Hors ligne

 

#3 Fri 31 January 2020 12:23

phedin
Participant occasionnel
Date d'inscription: 7 Feb 2019
Messages: 22

Re: Portal - récupération d'attributs issus de plusieurs entités

Merci !!
Je vais tester ça et je te redis!

Par contre quel est le comportement qd un utilisateur lambda créera une entité via la webapp?
- les champs vont bien se mettre à jour tout seul (même dans le cas de multiples intersections)
- je devrais ouvrir mon projet arcgis pro, lancer les règles attributaires et republier le service

Bonne journée!

Hors ligne

 

#4 Fri 31 January 2020 15:02

Arnaud_D
Membre
Date d'inscription: 9 Mar 2009
Messages: 88

Re: Portal - récupération d'attributs issus de plusieurs entités

Les règles attributaires c'est l'équivalent d'un trigger dans ta base de donnée.
Sauf que là c'est à la sauce ESRI.
Donc oui quand un utilisateur va créer une entité le champs souhaité peut être mise à jour.
Il faut juste définir les condition de déclenchement (c'est expliqué dans la doc)

Ensuite avec le code que je t'ai donné ça ne posera pas de problème, car les multiples intersection sont gérées avec ce morceau de code

Code:

for (var f in intersectLayer){
        NumParcelle  = NumParcelle  + f.LE_CHAMP_A_RECUPERER + ", "
    }

Enfin oui, comme il s’agit d'un changement sur ta donnée et dans ta base il faudra republier le service smile


Arnaud DESSENT

Hors ligne

 

#5 Fri 31 January 2020 15:49

phedin
Participant occasionnel
Date d'inscription: 7 Feb 2019
Messages: 22

Re: Portal - récupération d'attributs issus de plusieurs entités

Alors ça marche mais la fonction intersect semble trop sensible car j'ai toutes les parcelles contiguës à mon périmètre.


Plusieurs retours :
1/ ça ne retournait rien jusqu'au moment où j'ai changer le $datastore en $map dans ton expression.
2/ j'ai réalisé ça dans ma webmap et non dans arcgis pro via "Configurer les fenêtres contextuelles", puis l'ajout d' "expressions attributaires"

Merci !!

Dernière modification par phedin (Fri 31 January 2020 15:56)

Hors ligne

 

Pied de page des forums

Powered by FluxBB