Доступно с лицензией Network Analyst.
Папка | ShortestRoute |
Цель | Показывает кратчайший путь на определенное время дня между двумя точками на сети улиц и создает путевой лист в текстовом или HTML-файле. |
Сервисы | ShortestRouteService (сервис геообработки) |
Задачи геообработки | Вычисление кратчайшего пути |
Входные данные |
|
Выходные данные |
|
Данные | Используется набор сетевых данных по улицам для города Сан-Франциско, который предоставляется в папке ToolData |
Дополнительные модули | |
Примечание |
|
Соответствующая папка
Данные для этого руководства можно загрузить с сайта ArcGIS.com. Распакуйте данные в папку C:\arcgis\ArcTutor. Модель и некоторые сопутствующие данные хранятся в папке C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute. Набор сетевых данных, на которых имеется ссылка в слое сетевого анализа модели, хранится в базе геоданных SanFrancisco, которая размещена в папке C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\ShortestRoute.
Об этом примере
Сервис ShortestRouteService, созданный в этом примере, показывает, как публиковать задачи геообработки, которые рассчитывают кратчайший путь по сети улиц между заданными пользователем точками и создают файл, содержащий путевой лист.
Набор сетевых данных Сан-Франциско, используемый в этом примере, настраивается с использованием данных исторического трафика, которые позволяют находить кратчайший путь на автомобиле в заданное время дня и в заданный день недели. Это означает, что можно найти кратчайший путь из точки А в точку Б в 8:00, 10:00, 22:25 и т. д. Форма маршрута может меняться, как и его продолжительность, однако в любом случае вычисляется кратчайший маршрут на заданное время.
Данные
Набор сетевых данных для этого примера взят из C:\arcgis\ArcTutor\GP Service Examples\ArcGIS Network Analyst\SanFrancisco.gdb. Документ карты, набор инструментов и другие вспомогательные данные сохраняются в C:\arcgis\ArcTutor\GP Service Examples\ArcGIS Network Analyst\ShortestRoute.
Набор сетевых данных
Папка ArcGIS Network Analyst содержит файловую базу геоданных SanFrancisco.gdb. В наборе данных объектов Транспорт содержится набор сетевых данных Streets_ND. Этот набор сетевых данных моделирует сеть улиц города Сан-Франциско. В нем предоставляется ряд атрибутов сети, включая TravelTime, который указывает время на пересечение каждого сегмента улиц в минутах, и Meters, который указывает длину каждого сегмента улиц.
Набор инструментов и документ карты
Набором инструментов для сервиса геообработки является ShortestRouteService.tbx.
Документ карты, ShortestRouteService.mxd включен для удаления второстепенных действий в этом рабочем процессе, таких как добавление слоев, вписание экстентов карты в изучаемую область.
ShortestRouteService содержит инструмент-скрипт и модель. Инструмент-скрипт Изменить время начала маршрута является частью модели Вычисление кратчайшего пути.
Модель
Обзор модели
Модель Вычисление кратчайшего пути проиллюстрирована ниже.
Существует три входных параметра: Время начала, которое является необязательным и представляет собой время начала движения от первой остановки; Остановки на входе, которые предоставляют оцифрованные пользователем точки, которые обслуживает маршрут; а также Тип файла для путевого листа, который указывает, следует ли выводить путевой лист в формате HTML или в текстовом формате.
В модели используется инструмент-скрипт для определения начального времени маршрута в существующем уровне сетевого анализа, добавляются остановки в слой анализа маршрута, выполняется поиск кратчайшего пути и создается форма маршрута и путевой лист. Результирующий маршрут проходит по остановкам в порядке их оцифровки.
Использование существующего слоя сетевого анализа
Слой сетевого анализа не создается в модели Вычисление кратчайшего пути. Модель просто предполагает, что слой уже существует. Благодаря такому решению модель и сопутствующие задачи геообработки, опубликованные на ее основе, повторно используют один слой сетевого анализа вместо создания нового слоя для каждого расчета. Это позволяет избежать ненужной обработки.
Модель ссылается на инструмент-скрипт, Изменить время начала маршрута, который использует Python, а также на модуль ArcGIS Network Analyst (arcpy.na) для получения доступа к существующему слою сетевого анализ маршрута и изменения свойства времени начала этого маршрута в соответствии с введенными пользователем значениями даты и времени. Если точнее, скрипт передает слой сетевого анализа в arcpy.na.GetSolverProperties, а получает обратно объект RouteSolverProperties. На основе этого объекта устанавливается свойство timeOfDay слоя сетевого анализа.
Хотя это не рекомендуется, можно избежать добавления инструмента-скрипта путем запуска модели с инструментом Создать слой маршрута и предоставления параметра этого инструмента Время начала в качестве параметра модели. Однако после публикации модели в качестве задачи на сервере новый слой сетевого анализа будет создаваться по каждому клиентскому запросу. При таком подходе серверы должны будут выполнять большие объемы дополнительной обработки. Инструмент-скрипт и модуль ArcGIS Network Analyst позволяют изменять свойства существующего слоя сетевого анализа, чтобы можно было создать только один слой, который потом бы использовался этим сервисом.
Слой маршрута, использованный в качестве входной переменной в модели Вычисление кратчайшего пути создавался путем добавления набора сетевых данных Streets_ND в ShortestRouteService.mxd и использования инструмента Создать слой маршрута. В этом примере были заданы следующие параметры инструмента при создании слоя маршрута. Для параметров, не упомянутых в таблице, использовались значения по умолчанию.
Параметр | Значение |
Входная сеть анализа | Streets_ND |
Имя выходного слоя | Маршрут |
Атрибут импеданса | TravelTime |
Время начала | |
Накопители | Meters; TravelTime |
Правила разворотов | ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY |
Процессы модели
Инструмент-скрипт Изменить время начала маршрута позволяет воспользоваться преимуществами динамического времени в пути из набора сетевых данных путем определения времени начала маршрута. Если не задать дату и время механизм расчета найдет кратчайший маршрут в зависимости от сетевого стоимостного атрибута, созданного на основе общего времени в пути. Однако если дата и время указаны, механизм расчета использует стоимостной атрибут, основанный на историческом времени в пути, что позволяет, как показывает практика, прокладывать более точные маршруты.
Инструмент Добавить местоположения добавляет на слой маршрута оцифрованные пользователем точки в качестве остановок. Параметр Входные положения для этого инструмента определяется посредством параметра модели, Остановки на входе. Типом данных этого параметра является набор объектов. Схема и символы для набора объектов наследуются из файла InputStops.lyr, который содержится в папке ToolData.
Схема для набора объектов Остановки на входе содержит текстовое поле Имя. Это поле может использоваться для предоставления названий остановок в создаваемый путевой лист путем сопоставления свойства Имя с полем имени в Соответствии полей, как показано ниже. Если значение поля имени не определено пользователем, в качестве названий остановок используются значения по умолчанию: Местоположение 1, Местоположение 2 и т. д.
Так как тот же слой маршрута используется для каждого запуска модели, любые существующие остановки должны удаляться перед добавлением новых остановок. Чтобы удалить существующие остановки, следует снять отметку Присоединить к существующим положениям, как показано ниже.
Опция Исключить части сети с ограничениями включена, так что при добавлении остановок, они не размещаются на гранях, которые невозможно пересечь. Это предотвращает сбои во время расчетов.
Инструмент Расчет вычисляет кратчайший путь на основе сетевого атрибута TravelTime, настройки Время начала и других опций, указанных на слое маршрута. Вычисленный маршрут заносится на подслой Маршруты в выходном слое маршрута.
Слои сетевого анализа (например, слой маршрута) не являются поддерживаемыми типами данных выходных параметров у клиентов ArcGIS for Server. Поэтому инструмент Выбрать данные используется для получения подслоя Маршруты из слоя сетевого анализа.
Инструмент Путевой лист создает путевой лист и выводит его в текстовый, XML- или HTML-файл в зависимости от предпочтений пользователя. Однако опция XML исключается из списка при запуске результирующей задачи из ArcGIS for Server. Это опция удаляется путем снятия отметки XML в Редакторе сервисов, в разделе Тип файла для путевого листа, при публикации сервиса. В SolveSucceeded производная из инструмента Расчет используется в качестве предварительного условия для инструмента Путевой лист. Это означает, что файл путевого листа создается только в том случае, если инструмент Расчет может найти маршрут между входными точками.
Описание элемента
Документируя описание элемента модели геообработки, вы также документируете результирующий сервис и его параметры, так как мастер публикации копирует текст в описание элемента используемого сервиса. Описание или документирование сервиса является обязательной процедурой, призванной помочь пользователям понять, как можно успешно взаимодействовать с сервисом и находить кратчайшие пути. Модель и инструмент-скрипт в этом примере имеют документацию; ее можно просмотреть, щелкнув правой кнопкой мыши модель геообработки в окне Таблица содержания и выбрав пункт Описание элемента.
Публикация
Сервис геообработки публикуется, как описано в приведенных ниже пошаговых инструкциях.
- Откройте ShortestRouteService.mxd. Местом по умолчанию для руководств является C:\arcgis\ArcTutor\GP Service Examples\ArcGIS Network Analyst\ShortestRoute.
- Запустите модель геообработки Вычисление кратчайшего пути.
- В окне Каталог разверните ShortestRouteService.tbx и дважды щелкните модель Вычисление кратчайшего пути.
- В диалоговом окне инструмента Вычисление кратчайшего пути щелкните символ рядом с пунктом Остановки и щелкните место на карте, чтобы добавить остановку.
- Щелкните ОК, чтобы создать маршрут и путевой лист.
- Откройте окно Результаты, щелкнув Геообработка > Результаты.
- В окне Результаты разверните пункт Текущий сеанс.
- Щелкните правой кнопкой мыши пункт CalculateShortestRoute (вслед за которым следует время и дата запуска модели) и выберите Опубликовать как > Сервис геообработки.
- В диалоговом окне Опубликовать как сервис щелкните кнопку Далее.
- Выберите в раскрывающемся списке подключение к ArcGIS for Server с функциями издателя или выполните подключение с помощью кнопки, расположенной справа от раскрывающегося списка.
- Щелкните Далее.
- Выберите публикацию сервиса в корневую папку или укажите другую папку, затем нажмите кнопку Продолжить.
Появится диалоговое окно Редактор сервисов. В качестве описания сервиса копируется текст из описания элемента модели геообработки и инструмента-скрипта. Он доступен для редактирования в разделе Описание элемента диалогового окна, а также в разделах непосредственно над ним (Route_Directions, Start Time и т. д.).
- Так как анализ маршрута на этой изучаемой территории является быстрой процедурой, сделайте сервис синхронным, щелкнув закладку Параметры и установив отметку Синхронный. При публикации сервиса для расчета размещения-распределения или матрицы источник-назначение, задайте для этого свойства значение Асинхронный и рассмотрите возможность увеличения значения параметра Максимальное время, в течение которого клиент может использовать сервис, который находится на закладке Слияние сервисов.
- Измените значение параметра Уровень сообщений на Предупреждение, чтобы любые ошибки или предупреждения возвращались во время выполнения задачи.
- Удалите XML как формат файла путевого листа, щелкнув Тип файла для путевого листа и сняв отметку XML.
- Щелкните Анализировать для просмотра любых предупреждений или сообщений об ошибках в окне Издатель.
Если не настроено хранилище данных, появится предупреждение о том, что данные будут скопированы на сервер.
Щелкните любое другое сообщение об ошибке правой кнопкой мыши в окне Издатель, чтобы получить справку по решению той или иной неполадки.
- Щелкните Опубликовать в диалоговом окне Редактор сервиса.
Может незамедлительно появиться диалоговое окно, информирующее о копировании Streets_ND на сервер. В этом случае щелкните OK. После успешной публикации сервиса отображается диалоговое окно Успешно.
- Щелкните ОК.
Используя
- Откройте пустой документ карты и добавьте класс объектов Улицы из данных руководства (C:/arcgis/ArcTutor/GP Service Examples/ArcGIS Network Analyst/SanFrancisco/Transportation/Streets). Кроме того, можно добавить слой базовой карты из ArcGIS Online и удалить слой объектов Улицы.
- Создайте пользовательское подключение к ArcGIS for Server из окна Каталог, если таковое еще не существует.
- Разверните пользовательское подключение, затем разверните сервис CalculateShortestRoute.
- Дважды щелкните задачу Вычисление кратчайшего пути, чтобы открыть ее.
- Добавьте, по меньшей мере, две точки для создания остановок. Кроме того, можно указать имена для каждой остановки в таблице атрибутов применительно к тому слою, который отображается в таблице содержания: CalculateShortestRoute::Stops.
- Укажите дату и время начала маршрута от первой остановки. Выберите, следует ли выводить путевой лист в текстовом формате или в формате HTML. Щелкните OK, чтобы запустить задачу.
ArcGIS for Server получает запрос, выполняет расчет анализа, возвращает слой с именем Маршруты и сохраняет файл путевого листа во временной папке. Доступ к инструкциям по направлению движения можно получить в окне Результаты: разверните Текущий сеанс > CalculateShortestRoute и дважды щелкните пункт Путевой лист маршрута: RouteDirections. (Можно щелкнуть правой кнопкой мыши Route Directions: RouteDirections и выбрать пункт Копировать местоположение, чтобы найти место, где этот файл хранится на компьютере.)