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.
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:
- Herstellen einer Verbindung zwischen einem Ereignishandler und dem Ereignis jobComplete eines Geoverarbeitungs-Tasks
- Bestimmen der Karten-Service-URL eines Ergebnisses aus der jobId im Ereignishandler jobComplete
- 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.