Skip To Content

Verwenden eines Kartenservice des Ergebnisses in Webanwendungen

Ein Kartenservice des Ergebnisses wird von einem Geoverarbeitungsservice erstellt, um eine visuelle Repräsentation asynchroner Ausgaben von Geoverarbeitungs-Tasks bereitzustellen. Sie können die Option "Kartenservice des Ergebnisses" aktivieren, wenn Sie Symbolisierung definiert haben, um die Ausgabedaten leichter interpretieren zu können, oder wenn die Dataset-Ausgaben sehr groß sind und nicht heruntergeladen werden können.

So wie Sie dynamische Kartenservices hinzufügen, können Sie Webanwendungen auch einen Kartenservice des Ergebnisses hinzufügen. Ein Layer in einem Kartenservice des Ergebnisses entspricht der Geodataset-Ausgabe des Geoverarbeitungs-Tasks. Wenn Sie Webanwendungen einen Kartenservice des Ergebnisses hinzufügen, werden der Webanwendung alle Ausgabe-Layer im Kartenservice des Ergebnisses hinzugefügt. Wenn Sie jedoch einige der Ausgaben ausschließen möchten, können Sie die Sichtbarkeit der Layer nach Bedarf deaktivieren. Enthält ein Kartenservice des Ergebnisses Feature-Layer, können Sie diese unabhängig als clientseitige Feature-Layer in Webanwendungen hinzufügen. Der clientseitige Feature-Layer fragt die Features dynamisch ab und rendert sie als Grafiken auf dem Client. Bei großen Dataset-Ausgaben können Sie in den Eigenschaften des clientseitigen Feature-Layers festlegen, dass Features für die aktuelle Ausdehnung der Webanwendung dynamisch heruntergeladen werden.

Verwenden eines Kartenservice des Ergebnisses als dynamischer Kartenservice

Ein Kartenservice des Ergebnisses kann über die URL http://<Arcgis-REST-Services>/<GP-Servicename>/MapServer/jobs/<Job-ID> aufgerufen werden. Die Job-ID ist die eindeutige Kennung, die dem asynchronen Auftrag vom Server zugewiesen wurde. Sie können die Job-ID aus der JobInfo-Instanz abrufen, die vom Ereignishandler jobComplete zurückgegeben wird. Im nachfolgenden JavaScript-Code werden folgende Vorgänge angezeigt:

  1. Herstellen einer Verbindung zwischen einem Ereignishandler und dem Ereignis jobComplete eines Geoverarbeitungs-Tasks
  2. Bestimmen der Kartenservice-URL eines Ergebnisses aus der jobId im Ereignishandler jobComplete
  3. Hinzufügen eines Kartenservice des Ergebnisses als dynamischer Kartenservice zur Webanwendung

Verwenden eines Kartenservice des Ergebnisses in der JavaScript-API

//connect eventhandlers and submitJob.
function myGPSubmitJob(){ 
    // Connect event handler onJobComplete 
    dojo.connect(gpTask, "onJobComplete",onTaskComplete);
    dojo.connect(gpTask, "onError",onTaskFailure);
    dojo.connect(gpTask, "onStatusUpdate",onTaskStatus);
    //params is assumed as a name-value pair instance of gpparameter values.
    gpTask.submitJob(params);
}
// On Job Complete Callback add a dynamic map service using ResultMapService
function onTaskComplete(jobInfo){
    //replace mapservice url with your url and append jobid
    var mapurl = "http://..../<MyGPServiceName>/MapServer/jobs/" + jobinfo.jobId;
    //create a dynamic map service
    var gpResultLayer = new esri.layers.ArcGISDynamicMapServiceLayer(mapurl, {
                id: "gpLayer",
                opacity: 0.5
            });
    //add to web application.
     map.addLayer(gpResultLayer);
}

Die drei Schritte zum Hinzufügen eines Kartenservice des Ergebnisses zu Webanwendungen gelten für alle Web-APIs.

Weitere Informationen zum Definieren von Task-Parametern und anderen Ereignishandlern finden Sie unter Verwenden von Geoverarbeitungs-Tasks in Webanwendungen.

Verwenden des Kartenservice-Layers des Ergebnisses als clientseitige Feature-Layer

Ausgabeparameter von Geoverarbeitungs-Tasks des Datentyps GPFeatureRecordSetLayer werden als Feature-Layer im Kartenservice des Ergebnisses gerendert. Sie können diese Layer als clientseitige Feature-Layer hinzufügen. Beim Hinzufügen der Layer als clientseitige Feature-Layer werden die Features auf den Client heruntergeladen. Mit den FeatureLayer-Methoden können Sie interaktive Pop-up- und Infofenster erzeugen oder dynamische Diagramme und Schaubilder auf Grundlage der Attributwerte erstellen. Außerdem können Sie auf HTML-Pop-ups und Anhänge zugreifen, falls diese für die Layer verfügbar sind. Im nachfolgenden JavaScript-Code wird das Hinzufügen eines Feature-Layers zu einer Webanwendung dargestellt.

Hinzufügen von Feature-Layern zu Webanwendungen

// On Job Complete Callback add a featurelayer using ResultMapService
function onTaskComplete(jobInfo){
    //replace mapservice url with your url and append jobid
    var mapurl = "http://..../<MyGPServiceName>/MapServer/jobs/" + jobinfo.jobId;
    //the code snippet assumes the featureLayer is the first layer in the result map service
    var fLayerUrl = mapurl + “/0”;
    
    //create a feature layer 
    //the MODE_ONDEMAND property allows the client to restrictively download features for current web app extent
    var featurelayer=new esri.layers.FeatureLayer(fLayerUrl, {
                id: "gpfLayer",
                mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
                outFields: ["*"]
            });
    map.addLayer(featurelayer);	
    
}

Verwandte Themen