Utilizar el servicio de mapas de resultado en aplicaciones Web
Un servicio de geoprocesamiento crea un servicio de mapas de resultado para proporcionar representación visual de las salidas de las tareas de geoprocesamiento asíncronas. Puede habilitar la opción de servicio de mapas de resultado cuando se ha definido la simbología para comprender mejor los datos de salida o si tiene salidas dataset de gran tamaño que no se pueden descargar.
Puede agregar un servicio de mapas de resultado para aplicaciones Web de forma similar a como se agregan los servicios de mapas dinámicos. Una capa en un servicio de mapas de resultado corresponde a una salida de geodataset de la tarea de geoprocesamiento. Cuando agrega un servicio de mapas de resultado a aplicaciones Web, todas las capas de salida en el servicio de mapas de resultado se agregan a la aplicación Web. Sin embargo, si desea excluir algunos de los resultados, puede desactivar la visibilidad de las capas según sea necesario. Si hay capas de entidades en un servicio de mapas de resultado, puede agregarlas de forma independiente como capas de entidades por parte del cliente en las aplicaciones Web. La capa de entidades por parte del cliente consultará las entidades de forma dinámica y la visualizará como gráficos en el cliente. En el caso de salidas de dataset de gran tamaño, puede establecer la propiedad de la capa de entidad por parte del cliente para que descargue de forma dinámica entidades para la extensión actual de la aplicación Web.
Utilizar un servicio de mapas de resultado como un servicio de mapas dinámico
A un servicio de mapas de resultado se puede acceder mediante la dirección URL http://<arcgis rest services>/<GPServiceName>/MapServer/jobs/<jobId>. El jobId es el único identificador asignado por el servidor para el trabajo asíncrono. Puede obtener el jobId de la instancia JobInfo devuelta por el controlador de eventos jobComplete. El código JavaScript que aparece a continuación muestra cómo:
- Conectar un controlador de eventos al evento jobComplete de una tarea de geoprocesamiento asíncrona
- Determinar una dirección URL del servicio de mapas de resultado a partir del jobId en el controlador de eventos jobComplete
- Agregar un servicio de mapas de resultado como un servicio de mapas dinámico para la aplicación Web
Utilizar un servicio de mapas de resultado en la API de JavaScript
//connect eventhandlers and submitJob. function myGPSubmitJob(){ // Connect event handler onJobComplete dojo.connect(gpTask, "onJobComplete",onTaskComplete); dojo.connect(gpTask, "onError",onTaskFailure); dojo.connect(gpTask, "onStatusUpdate",onTaskStatus); //params is assumed as a name-value pair instance of gpparameter values. gpTask.submitJob(params); } // On Job Complete Callback add a dynamic map service using ResultMapService function onTaskComplete(jobInfo){ //replace mapservice url with your url and append jobid var mapurl = "http://..../<MyGPServiceName>/MapServer/jobs/" + jobinfo.jobId; //create a dynamic map service var gpResultLayer = new esri.layers.ArcGISDynamicMapServiceLayer(mapurl, { id: "gpLayer", opacity: 0.5 }); //add to web application. map.addLayer(gpResultLayer); }
Los tres pasos para agregar un servicio de mapas de resultado a aplicaciones Web también es aplicable a las API de Flex y Silverlight. Puede encontrar fragmentos de código de las API de Flex y Silverlight en sus SDK en línea respectivos.
Puede obtener más información sobre cómo definir los parámetros de tarea y otros controladores de eventos en Utilizar tareas de geoprocesamiento en las aplicaciones Web.
Utilizar la capa de servicio de mapas de resultado como o capas de entidad por parte del cliente
Un parámetro de salida de la tarea de geoprocesamiento del tipo de datos GPFeatureRecordSetLayer se visualizará como una featurelayer en el servicio de mapas de resultado. Puede agregar estas capas como capas de entidades por parte del cliente. Cuando las capas se agregan como capas de entidad por parte del cliente, las entidades se descargan en el cliente. Mediante los métodos FeatureLayer, puede crear ventanas emergentes e informativas interactivas o puede crear diagramas y gráficas basándose en los valores de atributo. También puede acceder a ventanas emergentes y archivos adjuntos HTML, si estuvieran disponibles para estas capas. El código JavaScript que aparece a continuación muestra cómo agregar una capa de entidades a una aplicación Web.
Agregar featureLayers en aplicaciones Web
// On Job Complete Callback add a featurelayer using ResultMapService function onTaskComplete(jobInfo){ //replace mapservice url with your url and append jobid var mapurl = "http://..../<MyGPServiceName>/MapServer/jobs/" + jobinfo.jobId; //the code snippet assumes the featureLayer is the first layer in the result map service var fLayerUrl = mapurl + “/0”; //create a feature layer //the MODE_ONDEMAND property allows the client to restrictively download features for current web app extent var featurelayer=new esri.layers.FeatureLayer(fLayerUrl, { id: "gpfLayer", mode: esri.layers.FeatureLayer.MODE_ONDEMAND, outFields: ["*"] }); map.addLayer(featurelayer); }
De nuevo, la lógica del fragmento de código también es aplicable para la API de Flex y de Silverlight. Puede obtener más información acerca de cómo crear ventanas emergentes e informativas, gráficas y diagramas en los SDK de JavaScript, Flex y Silverlight.