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.

Дополнительные сведения об определении параметров задач и других обработчиков событий можно найти в разделе Использование задач геообработки в веб-приложениях.

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

Выходной параметр задачи геообработки с типом данных 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);	
    
}

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