Techniques pour utiliser des outils Web dans des applications Web

Le service de géotraitement qui prend en charge un outil Web peut être utilisé dans une application Web personnalisée, ce qui permet aux clients de votre application Web de bénéficier de solutions de géotraitement et d’analyse. Vous pouvez intégralement créer une application Web à l’aide de ArcGIS API for JavaScript. Vous pouvez également 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.

  • Le point d’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 l’utilisation des outils Web avec ArcGIS REST API, reportez-vous à la rubrique Services géotraitement.

Outils Web dans 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 exemples et extraits de code. Sinon, le reste de cette section décrit la procédure qui permet d’intégrer le géotraitement dans une application Web :

  1. Initialisation du service de géotraitement
  2. Configuration des paramètres en entrée
  3. Exécution du service de géotraitement
  4. Obtention et gestion des résultats

Le code JavaScript suivant provient de l’exemple Calculate Viewshed (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: Run 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’exemple 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 service s’exécute en mode soumission d’un travail de géotraitement ou exécution d’une tâche de géotraitement. 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.

Outils Web dans Web AppBuilder

Pour utiliser un outil Web avec Web AppBuilder, vous n’avez besoin que de l’URL de service de l’outil Web ; aucun code n’est nécessaire. L’URL est affichée dans votre portail, sur la page Détails des éléments, dans la section URL.

Pour utiliser un outil Web dans Web AppBuilder, vous devez configurer un widget de géotraitement. Commencez par créer une application Web dans votre portail. Après avoir sélectionné le style et la carte, vous pouvez ajouter un widget de géotraitement et le configurer.

La configuration du widget vous permet de définir des options en entrée et en sortie concernant un outil Web. Ces paramètres en entrée et en sortie qui définissent l’outil Web déterminent quelles options 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 l’outil Web a été publié de façon à accepter les entités en entrée. Le même principe s’applique à la sortie. Un outil Web configuré pour générer des entités vous permet de configurer la symbologie et la façon dont l’application Web doit rendre la sortie de l’outil Web. Le résultat d’un outil Web configuré avec une couche cartographique de résultat sera ajouté à l’application Web et symbolisé en fonction des paramètres que vous avez spécifiés au cours du processus de publication initial.

Outils Web dans ArcGIS Experience Builder

Lors de la publication d’un outil Web sur ArcGIS Enterprise 11.3 ou version ultérieure, vous pouvez utiliser le widget Analyse après avoir ajouté l’outil Web comme service réseau. La plupart des paramètres d’entrée et de sortie peuvent être utilisés dans le widget d’analyse.

Vous pouvez configurer le comportement des paramètres d’entrée et de sortie, par exemple en autorisant ou en interdisant la fonctionnalité d’esquisse pour un paramètre d’entité en entrée, et en affichant ou masquant certaines entrées et sorties. Le widget d’analyse peut contenir plusieurs outils Web, si vous les avez ajoutés comme services réseau. Pour plus d’informations sur Experience Builder, consultez la rubrique Créer votre première expérience Web.

Outils Web dans Map Viewer

Lors de la publication d’un outil Web sur ArcGIS Enterprise 11.3 ou version ultérieure, vous pouvez ouvrir Map Viewer depuis votre portail et accéder aux outils personnalisés à partir de la fenêtre Tools (Outils) de la fenêtre Analysis (Analyse). Vous devez disposer des licences requises pour exécuter les outils Web dans Map Viewer. Pour plus d’informations sur les outils Web dans Map Viewer, consultez la rubrique Utiliser les outils Web personnalisés.