Pages: 1
- Sujet précédent - Portal - récupération d'attributs issus de plusieurs entités - Sujet suivant
#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
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
Pages: 1
- Sujet précédent - Portal - récupération d'attributs issus de plusieurs entités - Sujet suivant