Пользовательские сервисы маршрутизации — это сервисы геообработки с настраиваемыми возможностями. Хотя стандартные сервисы маршрутизации выполняют только определенные рабочие процессы сетевого анализа с набором параметров по умолчанию, вы можете опубликовать свой собственный сервис маршрутизации, если вам нужны дополнительные возможности рабочих процессов анализа или большая гибкость их выполнения. Например, вы можете найти маршрут между двумя остановками и создать профиль высот для этого маршрута или объединить несколько различных сетевых анализов в один веб-сервис. Для такого анализа можно создать пользовательский сервис маршрутизации. Пользовательские сервисы маршрутизации — это сервисы геообработки с настраиваемыми возможностями. Сервис геообработки позволяет вам публиковать пользовательские инструменты анализа в ArcGIS Server, компоненте ArcGIS Enterprise. Сервисы геообработки часто запускаются как веб-инструменты, размещенные на портале ArcGIS Enterprise. Эти инструменты создаются и запускаются в ArcGIS Pro или в виде инструмента-скрипта перед публикацией на сервере.
Создание пользовательского сервиса маршрутизации (сервиса геообработки) - состоящий из трех действий процесс, описанный в разделах ниже.
Разработка инструмента-скрипта
Первым шагом в создании пользовательского сервиса маршрутизации является создание и документирование инструмента-скрипта геообработки на основе модуля Python arcpy и arcpy.nax и написание кода Python, который будет реализовывать логику для запуска инструмента-скрипта. Инструмент создается в наборе инструментов.
Подробнее о создании инструмента-скрипта Python с помощью arcpy.nax
Публикация сервиса
После создания инструмента запустите его в ArcGIS Pro, чтобы добиться успешного выполнения инструмента. По завершении работы инструмента в истории геообработки можно опубликовать результат в виде веб-инструмента из ArcGIS Pro. При публикации создается элемент сервиса геообработки в подключении к серверу. Вы можете добавлять несколько инструментов, которые вы запускали, на один и тот же сервис геообработки во время публикации. Вы можете опубликовать сервис геообработки с ArcGIS Pro на сайте автономного сервера (который не интегрирован с порталом ArcGIS Enterprise), используя подключение администратора. Если вы работаете с сайтом сервера, который интегрирован с порталом ArcGIS Enterprise, вместо этого используйте публикацию веб-инструментов на портале ArcGIS Enterprise.
Узнайте, как публиковать и использовать сервис геообработки в этом примере
Использование сервиса
После публикации сервиса геообработки на ArcGIS Server (это относится и к веб-инструментам, опубликованным на портале, с которым интегрирован сайт сервера), авторизованные пользователи могут напрямую обращаться к сайту сервера с использованием различных операций в ArcGIS REST API, работать с ним в ArcGIS Pro, Виджетах геообработки в ArcGIS Web AppBuilder, добавлять его в пользовательские веб-приложения с ArcGIS API for JavaScript и многое другое.
Примечание:
Пользовательский сервис маршрутизации нельзя использовать в ArcGIS Pro через ленту сетевого анализа.
Информация о разработке сервисов геообработки
Чтобы повысить производительность сервисов геообработки, рассмотрите следующие советы:
- При задании параметра набора сетевых данных в инструменте-скрипте в качестве типа данных используйте Слой набора сетевых данных вместо Набора сетевых данных или Источника сетевых данных. Перед его публикацией в виде веб-инструмента запустите инструмент-скрипт и введите набор сетевых данных карты. Поскольку подключение к набору сетевых данных устанавливается один раз при запуске сервиса, вам не нужно открывать набор сетевых данных при каждом запросе к сервису, что экономит время.
- При чтении параметра набора сетевых данных в инструменте-скрипте используйте метод GetParameterAsText вместо метода GetParameter, поскольку метод GetParameterAsText обеспечивает доступ к слою набора сетевых данных гораздо быстрее.
- Запишите инструмент-скрипт геообработки с помощью модуля Python arcpy.nax. Это приводит к сокращению времени выполнения по сравнению с сервисами, созданными с помощью инструмента модели геообработки, или сервисами, созданными с помощью инструмента-скрипта с использованием arcpy.na через рабочий процесс, основанный на слоях.
- При задании входного параметра объекта для инструмента-скрипта используйте тип данных Набор объектов. Когда вы используете набор объектов и задаете по умолчанию файл слоя, файл слоя внутренне ссылается на класс объектов, который задает схему для набора объектов. Когда сервис публикуется, существует четко определенная схема выходных данных.
- Записывайте выходные данные в виртуальную рабочую область, а не в файловую базу геоданных.
- Не записывайте слишком много сообщений с помощью инструмента-скрипта.
- При публикации результата анализа в виде веб-инструмента или сервиса геообработки задайте постоянный режим ввода для параметра набора сетевых данных. Поскольку сервис всегда использует один и тот же набор сетевых данных, задание набора сетевых данных в качестве константы гарантирует, что он будет недоступен в итоговом сервисе, созданном инструментом.
- Выберите синхронный режим для быстрых запросов, чтобы обеспечить максимальную производительность.
- Если вы выберете синхронный режим для сервиса геообработки, вы сможете еще улучшить производительность сервиса геообработки, установив для свойства reusejobdir значение true. Но помните об ограничениях при задании этого свойства, поскольку при задании для reusejobdir значения true для каждого задания будет использоваться одна и та же папка задания. Поэтому если вы записываете выходные данные в директорию задания, вы должны убедиться, что у выходных данных будут уникальные имена при каждом запуске, чтобы они не влияли друг на друга.