Techniken zur Verwendung von Web-Werkzeugen in Web-Apps

Der Geoverarbeitungsservice, auf dem ein Webwerkzeug basiert, kann in einer benutzerdefinierten Web-App verwendet werden, wodurch den Clients Ihrer Web-App Geoverarbeitungs- und Analyselösungen zur Verfügung gestellt werden. Mithilfe von ArcGIS API for JavaScript können Sie Web-Apps von Grund auf neu erstellen. Alternativ kann eine konfigurierbare Web-App von einem Nicht-Entwickler mit Web AppBuilder in ArcGIS Enterprise bereitgestellt werden.

Unabhängig davon, welche Methode Sie zum Erstellen einer Web-App verwenden, erfolgt die Kommunikation des zugrunde liegenden Geoverarbeitungsservice über REST, wobei eine Verbindung mit dem Service-Endpunkt in ArcGIS Server hergestellt wird.

  • Der Service-Endpunkt ist eine URL, die in der Regel im folgenden Format vorliegt: http://<server>/arcgis/rest/<ServiceName>.
  • Jeder Service-Endpunkt verfügt über Informationen, die den Service, die durchführbaren Vorgänge und die Ressourcen beschreiben, aus denen der Service besteht. Bei der Geoverarbeitung stellen ein oder mehrere Werkzeuge die Ressourcen eines Service dar.

Weitere Informationen zur Verwendung von Web-Werkzeugen in ArcGIS REST API finden Sie unter Geoverarbeitungsservices.

Web-Werkzeuge in benutzerdefinierten Web-Apps

In der Regel wird eine benutzerdefinierte App mit der ArcGIS API for JavaScript erstellt. Prinzipiell können Sie eine App beliebig konfigurieren, solange sie mit dem Service über REST kommunizieren kann. Die folgende Erläuterung befasst sich jedoch mit JavaScript. Wenn Sie bereits mit JavaScript und Geoverarbeitung vertraut sind, können Sie sich Beispiele und Codeausschnitte ansehen. Andernfalls werden im verbleibenden Teil dieses Abschnitts die Vorgehensweise veranschaulicht, wie einer Web-App Geoverarbeitungfunktionalität hinzugefügt wird:

  1. Initialisieren des Geoverarbeitungsservice
  2. Einrichten von Eingabeparametern
  3. Ausführen des Geoverarbeitungsservice
  4. Abrufen und Verarbeiten des Ergebnisses bzw. der Ergebnisse

Der folgende JavaScript-Code stammt aus dem Beispiel für die Berechnung von Sichtfeldern, wobei die vier erforderlichen Schritte zum Ausführen von Geoverarbeitungswerkzeugen lediglich anhand der relevanten Teile veranschaulicht werden. Das Beispiel in der JavaScript-Hilfe stellt ein vollständiges Beispiel bereit, während im Folgenden nur eine funktionierende Webseite mit zusätzlichem Code erzeugt wird:

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

Im nachfolgenden Beispiel muss die Geoprocessor-Klasse geladen werden, und die REST-URL zum Service wird mit einer globalen Variable verwendet, um den Geoverarbeitungs-Task zu definieren. Der nächste Schritt besteht darin, die Parameter festzulegen, die für das von der App ausgeführte Werkzeug spezifisch sind. Für dieses Beispiel sind eine Punkt-(Feature-)Eingabe und eine Entfernung (lineare Einheit) erforderlich. Die für das Werkzeug im Service spezifische REST-URL definiert Eingabeparameter. Ein Service wird als synchron oder asynchron eingerichtet, und mit dieser Einstellung wird festgelegt, ob der Service als submit GP job oder execute GP task ausgeführt wird. Die Ausgabe für das jeweilige Werkzeug wird außerdem auf derselben Seite wie die Eingabeparameter erläutert; Informationen zum Typ und dessen Anzeigemöglichkeiten werden ebenfalls bereitgestellt.

Web-Werkzeuge in Web AppBuilder

Zur Verwendung eines Web-Werkzeugs mit Web AppBuilder benötigen Sie nur die Service-URL des Web-Werkzeugs. Es ist kein Code erforderlich. Die URL wir in Ihrem Portal auf der Elementdetailseite des Werkzeugs im Abschnitt URL angezeigt.

Zur Verwendung eines Web-Werkzeugs in Web AppBuilder wird ein Geoverarbeitungs-Widget konfiguriert. Erstellen Sie zunächst in Ihrem Portal eine Web-App. Nachdem Sie den Style und die Karte ausgewählt haben, können Sie ein neues Geoverarbeitungs-Widget hinzufügen und konfigurieren.

Die Konfiguration des Widgets ermöglicht Ihnen die Festlegung von Eingabe- und Ausgabeoptionen, die sich auf ein Webwerkzeug beziehen. Diese Eingabe- und Ausgabeparameter, die das Webwerkzeug definieren, bestimmen, welche Optionen über die Widget-Konfiguration verfügbar sind. Die Widget-Konfiguration ermöglicht Ihnen beispielsweise die Steuerung des Feature-Typs (Quadrat, Kreis, Freihand usw.), den ein Benutzer eingeben kann, wenn das Web-Werkzeug veröffentlicht wurde, um die Feature-Eingabe zu akzeptieren. Dieselben Voraussetzungen gelten für die Ausgabe. Ein Webwerkzeug, das für Ausgabe-Features eingerichtet wurde, ermöglicht Ihnen die Konfiguration der Symbolisierung und die Darstellung der Ausgabe des Webwerkzeugs durch die Web-App. Bei einem Webwerkzeug, das mit einem Ergebniskarten-Layer konfiguriert wurde, wird das Ergebnis der Web-App hinzugefügt und basierend auf Einstellungen symbolisiert, die während der ersten Veröffentlichung angegeben wurden.

Web-Werkzeuge in ArcGIS Experience Builder

Wenn Sie ein Web-Werkzeug in ArcGIS Enterprise 11.3 oder höher veröffentlichen, können Sie das Widget "Analyse" verwenden, nachdem Sie das Web-Werkzeug als Utility-Service hinzugefügt haben. Die meisten Eingabe- und Ausgabeparameter können im Analyse-Widget verwendet werden.

Sie können das Verhalten der Eingabe- und Ausgabeparameter konfigurieren, z. B. die Funktionalität "Skizzieren" für einen Eingabe-Feature-Parameter zulassen oder unterbinden und bestimmte Eingaben und Ausgaben anzeigen oder ausblenden. Es können mehrere Web-Werkzeuge im Analyse-Widget vorhanden sein, sofern Sie diese als Utility-Services hinzugefügt haben. Weitere Informationen zu Experience Builder finden Sie unter Erstellen einer ersten Web Experience.

Web-Werkzeuge in Map Viewer

Wenn Sie ein Web-Werkzeug in ArcGIS Enterprise 11.3 oder höher veröffentlichen, können Sie Map Viewer über Ihr Portal öffnen und die benutzerdefinierten Werkzeuge im Bereich Werkzeuge des Bereichs Analyse durchsuchen. Für die Ausführung von Web-Werkzeugen in Map Viewer müssen die Lizenzanforderungen erfüllt sein. Weitere Informationen zu Web-Werkzeugen in Map Viewer finden Sie unter Verwenden von benutzerdefinierten Web-Werkzeugen.