Сервис геообработки создает картографический сервис для просмотра результатов в целях предоставления визуального представления выходных данных задачи асинхронной геообработки. Можно включить опцию картографического сервиса для предоставления результатов при определении символов в целях лучшего представления выходных данных или при наличии большого объема выхода из набора данных, которые невозможно загрузить.
Можно добавить результирующий картографический сервис в веб-приложения аналогично добавлению динамических картографических сервисов. Слой в результирующем картографическом сервисе соответствует выходным данным набора геоданных задачи геообработки. При добавлении результирующего картографического сервиса в веб-приложения, все выходные слои в картографическом сервисе добавляются в веб-приложение. Однако если необходимо исключить некоторые выходные данные, можно при необходимости отключить видимость слоев. При наличии любых слоев объектов в результирующем картографическом сервисе можно добавить их независимо в веб-приложения как слои объектов клиентской стороны. Слой объектов на стороне клиента будет динамически опрашивать объекты и отображать их в клиенте как графику. В случае больших выходных объемов из набора данных можно задать свойство для слоя объектов на стороне клиента для динамической загрузки объектов для текущего экстента веб-приложения.
Использование результирующего картографического сервиса в качестве динамического картографического сервиса
Результирующий картографический сервис доступен по URL-адресу http://<arcgis rest services>/<GPServiceName>/MapServer/jobs/<jobId>. jobId – это уникальный идентификатор асинхронного задания, назначенный сервером. Можно получить идентификатор jobId из экземпляра JobInfo, возвращенного обработчиком событий jobComplete. В приведенном ниже коде JavaScript продемонстрированы следующие аспекты:
- подключение к обработчику событий для события jobComplete асинхронной задачи геообработки;
- Определение URL-адреса результирующего картографического сервиса по jobId в обработчике событий jobComplete;
- добавление результирующего картографического сервиса в качестве динамического картографического сервиса в веб-приложение.
Использование результирующего картографического сервиса в интерфейсе API JavaScript
//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);
}
Эти три шага, необходимые для добавления результирующего картографического сервиса в веб-приложения, применяются во всех веб-API.
Дополнительные сведения об определении параметров задач и других обработчиков событий можно найти в разделе Использование задач геообработки в веб-приложениях.
Использование слоя результирующего картографического сервиса в качестве слоев объектов на стороне клиента
Выходной параметр задачи геообработки с типом данных GPFeatureRecordSetLayer, будет отображаться в результирующем картографическом сервисе как featurelayer. Можно добавить эти слои в качестве слоев объектов на стороне клиента. При добавлении слоев в качестве слоев объектов на стороне клиента объекты загружаются клиентом. С помощью методов FeatureLayer можно создавать интерактивные всплывающие и информационные окна, а также динамические графики и диаграммы, основанные на значениях атрибутов. Можно также получить доступ к всплывающим окнам и вложениям HTML, если таковые доступны для этих слоев. Приведенный ниже код JavaScript демонстрирует, как добавить слой объектов в веб-приложение.
Добавление слоев объектов в веб-приложения// 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);
}