Verwenden eines Karten-Service des Ergebnisses in Webanwendungen

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

Weitere Informationen zu Karten-Services des ErgebnissesWeitere Informationen zum Aktivieren eines Karten-Service des Ergebnisses

So wie Sie dynamische Karten-Services hinzufügen, können Sie Webanwendungen auch einen Karten-Service des Ergebnisses hinzufügen. Ein Layer in einem Karten-Service des Ergebnisses entspricht der Geodataset-Ausgabe des Geoverarbeitungs-Tasks. Wenn Sie Webanwendungen einen Karten-Service des Ergebnisses hinzufügen, werden der Webanwendung alle Ausgabe-Layer im Karten-Service 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 Karten-Service 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 Karten-Service des Ergebnisses als dynamischer Karten-Service

Ein Karten-Service des Ergebnisses kann über die URL http://<arcgis rest services>/<GPServiceName>/MapServer/jobs/<jobId> aufgerufen werden. Die jobId ist die eindeutige Kennung, die dem asynchronen Auftrag vom Server zugewiesen wurde. Sie können die jobId 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 Karten-Service-URL eines Ergebnisses aus der jobId im Ereignishandler jobComplete
  3. Hinzufügen eines Karten-Service des Ergebnisses als dynamischer Karten-Service zur Webanwendung

Verwenden eines Karten-Service 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 Karten-Service des Ergebnisses zu Webanwendungen gelten auch für die Flex- und Silverlight-APIs. API-Codeausschnitte für Flex und Silverlight finden Sie in den entsprechenden Online-SDKs.

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

Verwenden des Karten-Service-Layers des Ergebnisses als clientseitige Feature-Layer

Ausgabeparameter von Geoverarbeitungs-Tasks des Datentyps GPFeatureRecordSetLayer werden als Feature-Layer im Karten-Service 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-up-Fenster 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);	

    
}

Die Logik der Codeausschnitte gilt ebenfalls für die Flex- und Silverlight-APIs. Weitere Informationen zum Erstellen von Pop-up- und Infofenstern, Schaubildern und Diagrammen finden Sie in den JavaScript-, Flex- und Silverlight-SDKs.

Verwandte Themen

6/13/2014