Skip To Content

Использование результирующего картографического сервиса в веб-приложениях

В этом разделе

Сервис геообработки создает картографический сервис для просмотра результатов в целях предоставления визуального представления выходных данных задачи асинхронной геообработки. Можно включить опцию картографического сервиса для предоставления результатов при определении символов в целях лучшего представления выходных данных или при большом объеме выходного набора данных, который невозможно загрузить.

Можно добавить результирующий картографический сервис в веб-приложения аналогично добавлению динамических картографических сервисов. Слой в результирующем картографическом сервисе соответствует выходному набору геоданных из задачи геообработки. При добавлении результирующего картографического сервиса в веб-приложения, все выходные слои в картографическом сервисе добавляются в веб-приложение. Однако если необходимо исключить некоторые выходные данные, можно отключить видимость слоев. При наличии любых слоев объектов в результирующем картографическом сервисе можно добавлять их независимо друг от друга, в виде слоев объектов клиентской стороны веб-приложения. Слой объектов на стороне клиента будет динамически опрашивать объекты и отображать их в клиенте как графику. В случае больших выходных наборов данных, можно задать параметр слоя объектов, разрешающий динамическую загрузку объектов для текущего экстента веб-приложения.

Использование результирующего картографического сервиса в качестве динамического картографического сервиса

Доступ к картографическому сервису для предоставления результатов можно получить с помощью URL-адреса http://<arcgis rest services>/<GPServiceName>/MapServer/jobs/<jobId>. jobId — это уникальный идентификатор асинхронного задания, назначенный сервером. Можно получить идентификатор jobId из экземпляра JobInfo, возвращенного обработчиком событий jobComplete. В приведенном ниже коде JavaScript показано:

  1. подключение к обработчику событий для события jobComplete асинхронной задачи геообработки;
  2. определение URL-адреса результирующего картографического сервиса по jobId в обработчике событий jobComplete;
  3. добавление результирующего картографического сервиса в качестве динамического картографического сервиса в веб-приложение.

Использование результирующего картографического сервиса в интерфейсе 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.

Связанные разделы