Esto se aplica a ArcGIS Server 9.3 con la API de JavaScript 2.4.
Mi objetivo es hacer clic en el mapa y ejecutar la tarea Identificar en todas las capas dinámicas visibles.
IdentifyTask requiere una URL para el punto final REST, con IdentifyParameters que especifica en qué capaIds se debe realizar la operación de identificación.
Parece que la herramienta Identificar espera que todas las capas sean accesibles desde el mismo punto final REST (es decir, el mismo servidor ArcGIS).
En mi caso, las capas se sirven desde varias instancias de ArcGIS Server. ¿Cómo puede la herramienta Identificar soportar esto? Por ejemplo, si las capas de Edificios y Parcelas en este mapa provienen de servidores ArcGIS separados.
(Esto está relacionado con mi pregunta anterior , pero ahora me doy cuenta de que primero necesito responder esta pregunta)
fuente
Respuestas:
Primero, aquí hay un ejemplo simplificado de la API de JavaScript para mostrar el concepto de usar DeferredList para procesar múltiples tareas de identificación:
Luego, aquí hay un ejemplo en jsFiddle que creo que hace lo que quiere, se ejecuta utilizando todas las capas visibles en todas las capas visibles del mapa dinámico en el mapa.
http://jsfiddle.net/blordcastillo/mULcz/
Todos los errores tipográficos se corrigen ahora :)
La idea básica es que cada vez que se hace clic en el mapa o se alterna la visibilidad, la identidad se vuelve a ejecutar. Cuando se ejecuta la identificación, la cantidad de tareas de identidad activadas depende de la cantidad de capas visibles, y espera hasta que todas las capas vuelvan a mostrar sus resultados.
fuente
La tarea de identificación solo puede hacer referencia a un servicio de mapas, por lo que deberá:
Me encontré con situaciones similares con una aplicación en la que quería poder identificarme en un servicio de mapas DEM y en un servicio de mapas de resultados de aumento del nivel del mar a partir de una tarea de geoprocesamiento. Elegí ejecutar dos IdentifyTasks. Lo único que realmente tiene que agregar es descubrir cuándo se realizan ambas tareas.
El flujo básico es (esto estaba usando Silverlight / C #)
fuente
Recreaba este mismo escenario con una lista diferida, pero la parte difícil era identificar solo las capas que están en escala. Esto es para la versión 3.2 jsapi http://www.spatialexception.org/posts/arcgis-javascript-identifytask-returns-scale-dependent-layers
fuente