Методы использования веб-инструментов в веб-приложениях

Сервис геообработки, который работает с веб-инструментом, можно использовать в пользовательском веб-приложении, предоставляя клиентам веб-приложения мощные решения для геообработки и анализа. Веб-приложение может быть построено с нуля при помощи ArcGIS API for JavaScript. Дополнительно вы можете развернуть настраиваемое веб-приложение с помощью Web AppBuilder в ArcGIS Enterprise.

Независимо от метода, который вы используете для создания веб-приложения, коммуникация базового сервиса геообработки происходит через REST, и выполняется подключение к конечной точке сервиса на ArcGIS Server.

  • Точка доступа сервиса – это URL, обычно следующего формата: http://<server>/arcgis/rest/<ServiceName>.
  • Каждая конечная точка сервиса содержит информацию, описывающую сервис, операции, которые могут быть выполнены, и ресурсы, входящие в состав сервиса. В контексте геообработки один или несколько инструментов составляют ресурсы сервиса.

Подробные сведения по использованию веб-инструментов с ArcGIS REST API см. в разделе Сервисы геообработки.

Веб-инструменты в пользовательских веб-приложениях

Обычно пользовательское веб-приложение строится при использовании ArcGIS API for JavaScript. Несмотря на то что вы можете построить любое приложение, которое может общаться с сервисом над REST, дальнейшее описание фокусируется на JavaScript. Если вы уже знакомы с JavaScript и геообработкой, просмотрите примеры и фрагменты кодов. Если нет, в оставшейся части этого раздела описывают следующий процесс для добавления геообработки в веб-приложение:

  1. Инициализация сервиса геообработки
  2. Установка входных параметров
  3. Запуск сервиса геообработки
  4. Получение и обработка результата или результатов

Следующий код JavaScript взят из примера Вычислить видимость и содержит только относящиеся к теме отрывки для демонстрации четырёх шагов, требуемых для выполнения инструментов геообработки. Этот пример в справке по JavaScript является образцом, где следующее содержание генерирует работающую веб-страницу с дополнительным кодом:

// esri.tasks.Geoprocessor is required for using Geoprocessor.
//  Add it along with other dojo.require statements.
dojo.require(esri.tasks.Geoprocessor); 

// Step 1: Initialize the geoprocessing and point to the REST URL
var gpUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Elevation/ESRI_Elevation_World/GPServer/Viewshed";
var gp = new Geoprocessor(gpUrl);	

// Set output spatial reference 
gp.outSpatialReference = { wkid: 102100 };

function computeViewshed(event) { 
   graphicsLayer.removeAll();

   // Step 2: Set up input parameters and assign or collect inputs from user
   var point = new Point({ 
        longitude: event.mapPoint.longitude,
        latitude: event.mapPoint.latitude  
   });  

   var inputGraphic = new Graphic({
      geometry: point, 
      symbol: markerSymbol 
   }); 
   graphicsLayer.add(inputGraphic); 

   var inputGraphicContainer = [];
   inputGraphicContainer.push(inputGraphic);
   var featureSet = new FeatureSet();
   featureSet.features = inputGraphicContainer;  

   var vsDistance = new LinearUnit();  
   vsDistance.distance = 5;
   vsDistance.units = "miles";  
   var params = {  
      "Input_Observation_Point": featureSet,
      "Viewshed_Distance": vsDistance  
   };  

   // Step 3: Run the service. In this instance, the service is Synchronous; Execute
   // will be called. An Asynchronous service will use gp.submitJob.
   gp.execute(params).then(drawResultData); 
}  

// Step 4: Render the result. Symbology is assigned and the graphics are added to the map.
function drawResultData(result) { 
   var resultFeatures = result.results[0].value.features;  
   // Assign each resulting graphic a symbol  
   var viewshedGraphics = resultFeatures.map(function(feature) { 
      feature.symbol = fillSymbol;     
      return feature; 
   });       
   // Add the resulting graphics to the graphics layer  
   graphicsLayer.addMany(viewshedGraphics);
}

В приведенном выше примере класс Geoprocessor должен быть загружен, а REST URL-адрес сервиса используется с глобальной переменной для определения задачи геообработки. Следующий шаг – указать параметры, необходимые для инструмента, который будет запускаться приложением. В данном примере требуются точечные (векторные) входные данные и расстояние (в линейных единицах). REST URL, специальное для инструмента в сервисе, будет определять входные параметры. Сервис будет настроен как синхронный или асинхронный, и эта настройка управляет тем, будет ли выполнение осуществляться как submit GP job или execute GP task. Выходные данные для каждого инструмента определяются на той же странице выходных параметров и включают информацию о типе и о способе их отображения.

Веб-инструменты в Web AppBuilder

Чтобы использовать веб-инструмент с Web AppBuilder, вам нужен только URL-адрес сервиса веб-инструмента; код не требуется. URL отображается на вашем портале, на странице подробная информация об элементе, в разделе URL.

Чтобы использовать веб-инструмент в Web AppBuilder, необходимо настроить виджет геообработки. Сначала необходимо создать веб-приложение на портале. После выбора стиля и карты можно добавить новый виджет геообработки и настроить его.

Конфигурация виджета позволяет задать входные и выходные параметры, относящиеся к веб-инструменту. Эти входные и выходные параметры, определяющие веб-инструмент, задают параметры, доступные через конфигурацию виджета. Например, конфигурация виджета позволяет контролировать тип объекта (прямоугольник, окружность, произвольная геометрия и так далее), который пользователь может создать, если веб-инструмент опубликован с разрешением на ввод объектов. То же самое применяется и для выходных данных. Веб-инструмент, настроенный на получение выходных объектов, позволяет указать их символы и то, как веб-приложение должно отображать выходные данные веб-инструмента. Веб-инструмент, настроенный с помощью слоя результирующей карты, будет иметь результат, добавленный в веб-приложение, и будет обозначен символами в соответствии с настройками, указанными вами во время первоначального процесса публикации.

Веб-инструменты в ArcGIS Experience Builder

При публикации веб-инструмента в ArcGIS Enterprise 11.3 или более поздней версии можно использовать Виджет Анализ после того, как вы добавите веб-инструмент как служебный сервис. Большинство входных и выходных параметров доступны для использования в виджете анализа.

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

Веб-инструменты в Map Viewer

При публикации веб-инструмента в ArcGIS Enterprise 11.3 или более поздней версии вы можете открыть Map Viewer из своего портала и перейти к пользовательским инструментам на панели Инструменты панели Анализ. Чтобы запустить веб-инструменты в Map Viewer, вы должны выполнить требования лицензирования. Более подробно о веб-инструментах в Map Viewer см. в разделе Использование пользовательских веб-инструментов.