Verwendung von Web-Apps

Ein Geoverarbeitungsservice auf einem eigenständigen Server, auf dem ArcGIS Server ausgeführt wird, oder ein Service auf einem Vebundserver, auf dem ein Web-Werkzeug basiert, kann in einer benutzerdefinierten Web-App verwendet werden, wodurch den Clients Ihrer Web-App Geoverarbeitungs- und Analyselösungen zur Verfügung gestellt werden. Eine Web-App kann mit dem ArcGIS Maps SDK for JavaScript von Grund auf neu erstellt werden. Alternativ kann eine konfigurierbare Web-App unter Verwendung des Analyse-Widgets ArcGIS Experience Builder in ArcGIS Enterprise bereitgestellt werden.

Unabhängig davon, welche Methode zum Erstellen einer Web-App verwendet wird, 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: https://organization.example.com/<context>/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.

Wenn Sie keine App erstellen, aber dennoch eine ansprechende Web Experience bieten möchten, können Sie Map Viewer in ArcGIS Enterprise verwenden.

Web-Werkzeuge und Geoverarbeitungsservices in benutzerdefinierten Web-Apps

In der Regel wird eine benutzerdefinierte App mit der ArcGIS Maps SDK 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 mit dem Datentyp "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 Job gesendet oder als 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 wird nur die Service-URL des Web-Werkzeugs benötigt. Es ist kein Code erforderlich. Die URL wird im Portal auf der Elementdetailseite des Werkzeugs im Abschnitt URL angezeigt.

Um ein Web-Werkzeug in Web AppBuilder zu verwenden, konfigurieren Sie ein Geoverarbeitungs-Widget. Erstellen Sie zunächst im Portal eine Web-App. Nach Auswahl des Styles und der Karte fügen Sie ein Geoverarbeitungs-Widget hinzu und konfigurieren es.

Die Konfiguration des Widgets unterstützt die Festlegung von Eingabe- und Ausgabeoptionen, die sich auf ein Webwerkzeug beziehen. Die 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 mit einem Ergebniskarten-Layer konfigurierten Webwerkzeug wird das Ergebnis der Web-App hinzugefügt und basierend auf Einstellungen symbolisiert, die während der ersten Veröffentlichung angegeben wurden.

Hinweis:

Erstellen Sie keine neuen Apps mit Web AppBuilder. Wenn Sie vorhandene Web AppBuilder-Apps haben, sollten Sie in Erwägung ziehen, diese zu ArcGIS Experience Builder zu migrieren.

Web-Werkzeuge und Geoverarbeitungsservices in ArcGIS Experience Builder

Wenn Sie ein Web-Werkzeug in ArcGIS Enterprise 11.3 oder höher veröffentlichen, verwenden Sie das Widget "Analyse", nachdem das Web-Werkzeug als Utility-Service hinzugefügt wurde. Die meisten Eingabe- und Ausgabeparameter können im Widget "Analyse" 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. Sie können mehrere Web-Werkzeuge als Utility-Service im Analyse-Widget hinzufügen. Weitere Informationen zu Experience Builder finden Sie unter Erstellen einer ersten Web Experience.

Hinweis:

Map Viewer ist auf einem eigenständigen Server mit ArcGIS Server nicht verfügbar.

Um ArcGIS Experience Builder von ArcGIS Online zu verwenden oder um Web-Werkzeuge und Geoverarbeitungsservices in einer anderen Umgebung als der mit Experience Builder zu verwenden, fügen Sie beim Hinzufügen eines Dienstprogramms die URL des eigenständigen Geoverarbeitungsservice oder des Geoverarbeitungsservice des Web-Werkzeugs wie https://organization.example.com/<context>/rest/services/<serviceName>/GPServer hinzu. Geben Sie nicht die URL eines einzelnen Tasks des Geoverarbeitungsservice oder die URL des Portalelements des Web-Werkzeugs an. Stellen Sie sicher, dass der Geoverarbeitungsservice über ArcGIS Online oder ein Portal zugänglich ist.

Web-Werkzeuge und Elemente des Geoverarbeitungsservice in Map Viewer

Wenn Sie ein Web-Werkzeug in ArcGIS Enterprise 11.3 oder höher veröffentlichen, öffnen Sie Map Viewer über Ihr Portal, und durchsuchen Sie die benutzerdefinierten Werkzeuge im Abschnitt Werkzeuge des Menübands Analyse. 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. Hinweis: Map Viewer ist auf einem eigenständigen Server mit ArcGIS Server nicht verfügbar.

Wenn sich der Geoverarbeitungsservice auf einem eigenständigen Server mit ArcGIS Server oder auf einem anderen Portal als Map Viewer befindet, fügen Sie diesen Geoverarbeitungsservice zuerst dem Portal von Map Viewer hinzu. Geben Sie dazu die Service-URL, z. B. https://organization.example.com/<context>/rest/services/<serviceName>/GPServer, an, um ein Element hinzuzufügen. Geben Sie nicht die URL eines einzelnen Tasks des Geoverarbeitungsservice oder das Portalelement des Web-Werkzeugs an.

Um Map Viewer von ArcGIS Online zu verwenden, fügen Sie einen Service einer URL hinzu, indem Sie die Service-URL des eigenständigen Geoverarbeitungsservice oder des Geoverarbeitungsservice des Web-Werkzeugs, wie z. B. https://organization.example.com/<context>/rest/services/<serviceName>/GPServer, angeben. Geben Sie nicht die URL eines einzelnen Tasks des Geoverarbeitungsservice an. Stellen Sie sicher, dass auf den Geoverarbeitungsservice von ArcGIS Online aus zugegriffen werden kann, das sich immer außerhalb der Firewall Ihrer Organisation befindet.