Использование в веб-приложениях

Сервис геообработки на автономном сервере с ArcGIS Server и сервис на интегрированном сервере, который работает с веб-инструментом, можно использовать в пользовательском веб-приложении, предоставляя клиентам веб-приложения решения для геообработки и анализа. Веб-приложение может быть построено с нуля с помощью ArcGIS Maps SDK for JavaScript. Или вы можете развернуть настраиваемое веб-приложение, используя виджет анализа ArcGIS Experience Builder в ArcGIS Enterprise.

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

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

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

Если вы не хотите создавать веб-приложение, но все же хотите иметь веб-интерфейс, вы можете использовать Map Viewer в ArcGIS Enterprise.

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

Обычно пользовательское веб-приложение строится при использовании ArcGIS Maps SDK 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, специальное для инструмента в сервисе, будет определять входные параметры. Сервис будет настроен как синхронный или асинхронный, от этого параметра зависит, будет ли сервис размещаться как задание или работать как задача. Выходные данные для каждого инструмента определяются на той же странице выходных параметров и включают информацию о типе и о способе их отображения.

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

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

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

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

Примечание:

Не создавайте новые приложения с помощью Web AppBuilder. Если у вас есть существующие приложения Web AppBuilder, подумайте о переносе их в ArcGIS Experience Builder.

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

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

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

Примечание:

Map Viewer недоступно на автономном сервере, использующем ArcGIS Server.

Чтобы использовать ArcGIS Experience Builder из ArcGIS Online или веб-инструменты и сервисы геообработки в среде, отличной от используемой с Experience Builder, добавьте URL-адрес автономного сервиса геообработки или сервиса геообработки веб-инструмента, например, https://organization.example.com/<context>/rest/services/<serviceName>/GPServer при добавлении утилиты. Не указывайте URL-адрес отдельной задачи сервиса геообработки или URL-адрес элемента веб-инструмента портала. Убедитесь, что сервис геообработки доступен с ArcGIS Online или с портала.

Элементы веб-инструментов и сервисов геообработки в Map Viewer.

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

Если сервис геообработки запущен на автономном сервере с ArcGIS Server или на другом портале, отличном от Map Viewer, сначала добавьте этот сервис геообработки на портал Map Viewer. Для этого укажите URL-адрес сервиса, например https://organization.example.com/<context>/rest/services/<serviceName>/GPServer, для добавления элемента. Не указывайте URL-адрес отдельной задачи сервиса геообработки или элемента веб-инструмента портала.

Чтобы использовать Map Viewer из ArcGIS Online, добавьте сервис по URL-адресу, указав URL-адрес автономного сервиса геообработки или сервиса геообработки веб-инструмента, например https://organization.example.com/<context>/rest/services/<serviceName>/GPServer. Не указывайте URL-адрес отдельной задачи сервиса геообработки. Убедитесь, что сервис геообработки доступен для ArcGIS Online, который всегда находится за пределами брандмауэра вашей организации.