Usar herramientas web en las aplicaciones web

El servicio de geoprocesamiento que alimenta una herramienta web se puede consumir en una aplicación web personalizada, lo que proporciona a los clientes de la aplicación web soluciones de geoprocesamiento y análisis. En términos generales, crear una aplicación web se puede considerar tarea de un desarrollador o programador. Una aplicación web se puede crear desde cero usando ArcGIS API for JavaScript. Como alternativa, un no desarrollador puede implementar una aplicación web configurable usando Web AppBuilder en ArcGIS Enterprise.

Con independencia del método utilizado para crear una aplicación web, la comunicación del servicio de geoprocesamiento subyacente se produce a través de REST y se conecta al extremo del servicio de ArcGIS Server.

  • El extremo del servicio es una dirección URL que normalmente tiene el siguiente formato: http://<server>/arcgis/rest/<ServiceName>
  • Cada extremo del servicio tiene información que describe el servicio, las operaciones que se pueden realizar y los recursos que componen el servicio. En el contexto de geoprocesamiento, una o varias herramientas componen los recursos de un servicio.

Más información sobre el geoprocesamiento y REST

Usar herramientas web con las aplicaciones web personalizadas

Normalmente, las aplicaciones web personalizadas se crean con ArcGIS API for JavaScript. Aunque se puede crear cualquier aplicación de forma que pueda comunicarse con el servicio a través de REST, el siguiente análisis se centra en JavaScript. Si ya se ha familiarizado con JavaScript y el geoprocesamiento, puede revisar las muestras y los fragmentos de código. De lo contrario, el resto de esta sección describe los pasos necesarios para agregar el geoprocesamiento a la aplicación web:

  1. Inicializar el servicio de geoprocesamiento
  2. Configurar los parámetros de entrada
  3. Ejecutar
  4. Obtener y tratar el resultado o los resultados

El siguiente código de JavaScript se ha tomado de la muestra Calculate Viewshed con solo algunos fragmentos relevantes para mostrar los cuatro pasos requeridos para ejecutar las herramientas de geoprocesamiento. La muestra de la Ayuda de JavaScript proporciona un ejemplo completo, mientras que lo siguiente solo produce una página web funcional con código adicional:

// esri.tasks.Geoprocessor is required for using Geoprocessor. //  Add it along with other dojo.require statements. dojo.require(esri.tasks.Geoprocessor); 
// Step 1: Initialize the geoprocessing and point to the REST URL var gpUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Elevation/ESRI_Elevation_World/GPServer/Viewshed";
var gp = new Geoprocessor(gpUrl);	
// Set output spatial reference gp.outSpatialReference = { wkid: 102100 };
function computeViewshed(event) {    graphicsLayer.removeAll();
   // Step 2: Set up input parameters and assign or collect inputs from user   var point = new Point({         longitude: event.mapPoint.longitude,
        latitude: event.mapPoint.latitude     });  
   var inputGraphic = new Graphic({
      geometry: point,       symbol: markerSymbol 
   });    graphicsLayer.add(inputGraphic); 
   var inputGraphicContainer = [];
   inputGraphicContainer.push(inputGraphic);
   var featureSet = new FeatureSet();
   featureSet.features = inputGraphicContainer;  
   var vsDistance = new LinearUnit();     vsDistance.distance = 5;
   vsDistance.units = "miles";     var params = {  
      "Input_Observation_Point": featureSet,      "Viewshed_Distance": vsDistance     };  
   // Step 3: Execute the service. In this instance, the service is Synchronous; Execute   // will be called. An Asynchronous service will use gp.submitJob.   gp.execute(params).then(drawResultData); 
}  
// Step 4: Render the result. Symbology is assigned and the graphics are added to the map. function drawResultData(result) {    var resultFeatures = result.results[0].value.features;  
   // Assign each resulting graphic a symbol     var viewshedGraphics = resultFeatures.map(function(feature) { 
      feature.symbol = fillSymbol;           return feature; 
   });          // Add the resulting graphics to the graphics layer  
   graphicsLayer.addMany(viewshedGraphics);
}

En el ejemplo anterior, se debe cargar la clase Geoprocessor, y la URL REST del servicio se usa con una variable global para definir la tarea de geoprocesamiento. El siguiente paso es crear los parámetros específicos de la herramienta que ejecutará la aplicación. Este ejemplo requiere una entrada de punto (entidad) y una distancia (unidad lineal). La dirección URL REST específica de la herramienta en el servicio definirá los parámetros de entrada. Un servicio se configura como síncrono o asíncrono, y este ajuste controla si la ejecución se realiza como submitJob o execute. La salida de cada herramienta se explica también en la misma página que los parámetros de entrada y se proporciona información sobre el tipo y sobre cómo se puede mostrar.

Para obtener una explicación más detallada de estos pasos, consulte Utilizar tareas de geoprocesamiento en aplicaciones web.

Sugerencia:

El ejemplo anterior devuelve entidades que representan las ubicaciones que una persona podría ver en el suelo según el análisis de la cuenca visual. Un servicio de geoprocesamiento puede proporcionar una salida de texto, números o archivo, es decir: elementos que no se pueden dibujar en un mapa. En estas situaciones, tiene que adoptar una estrategia diferente y mostrar la salida del servicio de una manera que resulte apropiada para la aplicación que está creando. Por ejemplo, un cuadro emergente con salida de texto o un vínculo para guardar un archivo puede ser suficiente.

Usar herramientas web con Web AppBuilder

Para utilizar una herramienta web con Web AppBuilder, solo necesita la URL de servicio de su herramienta web; no se requiere código. Encontrará la URL en su portal de Enterprise., en la página detalles del elemento de la herramienta, en la sección URL.

Para usar una herramienta web en Web AppBuilder, debe configurar un widget de geoprocesamiento. Primero, cree una aplicación web en el portal. Una vez que haya seleccionado el estilo y el mapa, podrá agregar un widget de geoprocesamiento y configurarlo.

La configuración del widget permite definir opciones de entrada y salida relacionadas con la herramienta web. Estos parámetros de entrada y salida que definen la herramienta web determinan las opciones que están disponibles a través de la configuración del widget. Por ejemplo, la configuración del widget permite controlar el tipo de entidad (cuadrado, círculo, mano alzada, etc.) que un usuario puede introducir si la herramienta web se ha publicado para aceptar entradas de entidades. La misma premisa es válida para la salida. Una herramienta web configurada para generar entidades permite configurar la simbología y la forma en que la aplicación web renderizará la salida de la herramienta web. Una herramienta web configurada con una capa de mapa de resultado hará que el resultado se agregue a la aplicación web y se simbolice en función de la configuración elegida durante el proceso de publicación inicial.