Utiliser des services de géotraitement dans des applications web

Un service de géotraitement peut être utilisé dans une application web personnalisée, ce qui permet aux clients de cette dernière de bénéficier de puissantes solutions de géotraitement et d’analyse. De manière générale, la création d'une application web peut être considérée comme la tâche d'un développeur (ou programmeur). Une application web peut être conçue intégralement à l'aide de l'API JavaScript. Une personne qui n’est pas développeur peut déployer une application web configurable avec Web AppBuilder dans ArcGIS Enterprise.

Quelle que soit la méthode utilisée pour créer une application Web, la communication du service de géotraitement sous-jacent a lieu via REST et se connecte au point d’extrémité du service sur ArcGIS Server.

  • L'extrémité du service est une URL, qui se présente généralement au format suivant : http://<server>/arcgis/rest/<ServiceName>
  • Chaque point d’extrémité de service possède des informations qui décrivent le service, les opérations possibles et les ressources qui composent le service. Dans le contexte du géotraitement, un ou plusieurs outils composent les ressources d’un service.

Pour en savoir plus sur le géotraitement et REST

Utiliser des services de géotraitement avec des applications web personnalisées

En règle générale, ArcGIS API for JavaScript est utilisé pour créer une application Web personnalisée. Même si vous pouvez construire une application capable de communiquer avec le service via REST, la discussion suivante se concentre sur JavaScript. Si vous connaissez déjà JavaScript et le géotraitement, vous pouvez consulter les échantillons et extraits de code. Sinon, le reste de cette section décrit les étapes suivantes requises pour intégrer le géotraitement dans votre application Web :

  1. Initialiser le service de géotraitement
  2. Configurer les paramètres en entrée
  3. Exécuter
  4. Obtenir et gérer le ou les résultats

Le code JavaScript suivant provient de l'échantillon Calculer un champ de vision avec uniquement les parties pertinentes pour illustrer les quatre étapes requises à l'exécution des outils de géotraitement. L'échantillon dans l'aide de JavaScript offre un exemple complet, tandis que le texte suivant génère uniquement une page web opérationnelle avec un code ajouté :

// 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);
}

Dans l’échantillon ci-dessus, la classe Geoprocessor doit être chargée et l’URL REST du service est utilisée avec une variable globale pour définir la tâche de géotraitement. L'étape suivante consiste à construire les paramètres propres à l'outil que l'application va exécuter. Cet échantillon nécessite un point (entité) en entrée et une distance (unité linéaire). L'URL REST propre à l'outil dans le service définit les paramètres en entrée. Un service est configuré comme synchrone ou asynchrone et ce paramètre détermine si le mode d’exécution est submitJob ou execute. La sortie de chaque outil est également expliquée sur la même page que les paramètres en entrée. Des informations sur le type et sur son mode d'affichage sont fournies.

Pour en savoir plus sur ces étapes, reportez-vous à Utilisation de tâches de géotraitement dans des applications Web.

Astuce :

L'exemple précédent renvoie les entités représentant les emplacements qu'une personne serait en mesure de voir sur la Terre à partir de l'analyse de champ de vision. Un service de géotraitement peut fournir du texte, des nombres ou un fichier en sortie, c'est-à-dire des éléments qui ne peuvent pas s'afficher sur une carte. Dans ces scénarios, vous devez adopter une approche différente et afficher la sortie du service d’une manière appropriée pour l’application que vous concevez. Par exemple, une fenêtre contextuelle avec du texte en sortie ou un lien permettant d’enregistrer un fichier peut suffire.

Utiliser des services de géotraitement avec Web AppBuilder

Pour utiliser Web AppBuilder, il n’est pas nécessaire d’écrire du code. Il suffit de connaître l’extrémité (URL REST) de votre service de géotraitement. Pour utiliser un service de géotraitement dans une application web créée par Web AppBuilder, configurez le widget de géotraitement. Vous devez d’abord créer une application web dans votre portail. Une que vous avez sélectionne le style et la carte, vous pouvez ajouter un nouveau widget de géotraitement et le configurer. La configuration du widget vous permet de définir des options en entrée et en sortie qui concernent ce service. Ces paramètres en entrée et en sortie qui définissent le service dictent les options qui sont accessibles via la configuration du widget. Par exemple, la configuration du widget vous permet de contrôler le type d’entité (carré, cercle, dessin à main levée, etc) qu’un utilisateur peut saisir si le service de géotraitement a été publié de façon à accepter les entités en entrée. Le même principe s'applique à la sortie. Un service de géotraitement configuré de façon à générer des entités vous permet de configurer la symbologie et la façon dont l’application web doit rendre la sortie du service de géotraitement. Lorsqu'un service a été configuré avec une couche de résultat, le résultat est ajouté à votre application web et est symbolisé en fonction des paramètres choisis au cours de la publication initiale.