Cela s'applique à ArcGIS Server 9.3 avec l'API JavaScript 2.4.
Mon objectif est de cliquer sur la carte et d'exécuter la tâche Identifier sur toutes les couches dynamiques visibles.
IdentifyTask nécessite une URL vers le point de terminaison REST, IdentifyParameters spécifiant sur quels ID de couche l'opération d'identification doit être effectuée.
Il semble que l'outil Identifier s'attende à ce que toutes les couches soient accessibles à partir du même point de terminaison REST (c'est-à-dire le même ArcGIS Server).
Dans mon cas, les couches sont servies à partir de plusieurs instances d'ArcGIS Server - comment l'outil Identifier peut-il prendre en charge cela? Par exemple, si les couches Bâtiments et Parcelles de cette carte provenaient de serveurs ArcGIS distincts.
(Ceci est lié à ma question précédente , mais je me rends compte maintenant que je dois d'abord répondre à cette question)
la source
Réponses:
Tout d'abord, voici un exemple d'API JavaScript simplifié pour montrer le concept d'utilisation de DeferredList pour traiter plusieurs tâches d'identification:
Ensuite, voici un exemple dans jsFiddle qui, je pense, fait ce que vous voulez, fonctionne en utilisant toutes les couches visibles dans toutes les couches de carte dynamique visibles de la carte.
http://jsfiddle.net/blordcastillo/mULcz/
Toutes les fautes de frappe sont corrigées maintenant :)
L'idée de base est que chaque fois que la carte est cliquée ou que la visibilité est basculée, l'identifiant est réexécuté. Lorsque l'identification est exécutée, le nombre de tâches d'identité déclenchées dépend du nombre de couches visibles et attend que toutes les couches reviennent pour afficher ses résultats.
la source
La tâche d'identification ne peut référencer qu'un seul service de carte, vous devrez donc:
Je suis tombé sur des situations similaires avec une application où je voulais être en mesure d'identifier sur un service de carte DEM et sur un service de carte de résultat d'élévation du niveau de la mer à partir d'une tâche de géotraitement. J'ai choisi d'exécuter deux IdentifyTasks. La seule chose que vous devez vraiment ajouter est de savoir quand les deux tâches sont terminées.
Le flux de base est (c'était en utilisant Silverlight / C #)
la source
J'ai recréé ce scénario avec une liste différée, mais la partie délicate consistait uniquement à identifier les calques à l'échelle. Ceci est pour la version 3.2 jsapi http://www.spatialexception.org/posts/arcgis-javascript-identifytask-returns-scale-dependent-layers
la source