Использование результирующего картографического сервиса в веб-приложениях
Сервис геообработки создает картографический сервис для просмотра результатов в целях предоставления визуального представления выходных данных задачи асинхронной геообработки. Можно включить опцию картографического сервиса для предоставления результатов при определении символов в целях лучшего представления выходных данных или при большом объеме выходного набора данных, который невозможно загрузить.
Можно добавить результирующий картографический сервис в веб-приложения аналогично добавлению динамических картографических сервисов. Слой в результирующем картографическом сервисе соответствует выходному набору геоданных из задачи геообработки. При добавлении результирующего картографического сервиса в веб-приложения, все выходные слои в картографическом сервисе добавляются в веб-приложение. Однако если необходимо исключить некоторые выходные данные, можно отключить видимость слоев. При наличии любых слоев объектов в результирующем картографическом сервисе можно добавлять их независимо друг от друга, в виде слоев объектов клиентской стороны веб-приложения. Слой объектов на стороне клиента будет динамически опрашивать объекты и отображать их в клиенте как графику. В случае больших выходных наборов данных, можно задать параметр слоя объектов, разрешающий динамическую загрузку объектов для текущего экстента веб-приложения.
Использование результирующего картографического сервиса в качестве динамического картографического сервиса
Доступ к картографическому сервису для предоставления результатов можно получить с помощью 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 Flex и Silverlight. Фрагменты кода с использованием интерфейса API для Flex и Silverlight можно найти в соответствующих интерактивных пакетах SDK.
Дополнительные сведения об определении параметров задач и других обработчиков событий можно найти в разделе Использование задач геообработки в веб-приложениях (Using geoprocessing tasks in web applications).
Использование результирующего картографического сервиса в качестве слоев объектов на стороне клиента
Выходной параметр задачи геообработки с типом данных GPFeatureRecordSetLayer, будет отображаться как слой объектов в результирующем картографическом сервисе. Можно добавить эти слои в качестве слоев объектов на стороне клиента. При добавлении слоев в качестве слоев объектов на стороне клиента, объекты загружаются в клиентское приложение. С помощью методов 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);
}
Помните, что логика фрагментов кода применима также к интерфейсам API Flex и Silverlight. Дополнительные сведения о создании всплывающих и информационных окон, графиков и диаграмм см. в соответствующих пакетах SDK JavaScript, Flex и Silverlight.