ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Упражнение 8. Поиск оптимальных маршрутов для выполнения парных заказов

Доступно с лицензией Network Analyst.

  • Подготовка отображения
  • Создание слоя анализа для выбора маршрута транспорта
  • Добавление специальных условий
  • Добавление заказов
  • Добавление парных заказов
  • Добавление складов
  • Добавление маршрутов
  • Добавление зон маршрута
  • Установка свойств для анализа
  • Запустите процесс для нахождения решения
  • Определение пошаговых путевых листов для маршрутов
Уровень сложности:
Начальный
Требования к данным:
ArcGIS Tutorial Data for Desktop
Путь к данным:
C:\ArcGIS\ArcTutor\ArcGIS Network Analyst\Tutorial
Задача:
Выполните анализ задачи нахождения транспортного маршрута с учетом парных заказов.

Цель этого упражнения – найти наиболее оптимальные маршруты для автопарка, чтобы перевозить людей, у которых нет другого доступа к транспорту, из дома до больницы для прохождения лечения. Упражнение будет выполнено путем решения задачи нахождения транспортного маршрута (VRP) с учетом парных заказов, которая связывает два последовательных заказа (остановки) так, что транспорт будет подбирать людей и доставлять их в нужную больницу. Также будут соблюдены дополнительные требования с помощью других характеристик слоя анализа задачи VRP. Например, будет введено максимальное время в пути для парных заказов так, чтобы люди не проводили слишком много времени в пути. Будут использованы временные ограничения, так как люди не должны опаздывать в больницу. Некоторым людям требуются кресла-коляски, поэтому для них нужно будет отправить транспорт со специальными подъемниками для кресел-колясок. После определения маршрутов будут созданы пошаговые указания результирующих маршрутов, которые можно отправить электронным способом или распечатать и передать водителям.

Примечание:

Данные для этого и других учебных упражнений Network Analyst доступны на сайте ArcGIS.com. После загрузки данных их можно извлечь в любое место. Однако удобнее извлечь их в папку C:\arcgis\ArcTutor, поскольку эта папка указана в упражнениях как местоположение учебных данных по умолчанию.

Подготовка отображения

  1. Если файл Exercise08.mxd открыт в ArcMap, переходите к шагу 6.
  2. Запустите ArcMap.
  3. В диалоговом окне ArcMap – Начало работы (ArcMap – Getting Started) щелкните Существующие карты (Existing Maps) > Найти еще (Browse for more).

    Появится диалоговое окно Открыть документ ArcMap (Open ArcMap Document).

  4. Перейдите к папке C:\ArcGIS\ArcTutor\ArcGIS Network Analyst\Tutorial.

    Это местоположение по умолчанию для установки учебных материалов.

  5. Дважды щёлкните на файле Exercise08.mxd.

    Документ карты откроется в ArcMap.

  6. Активируйте дополнительный модуль ArcGIS Network Analyst.
    1. Щелкните Настройка (Customize) > Дополнительные модули (Extensions).

      Откроется диалоговое окно Дополнительные модули (Extensions).

    2. Отметьте ArcGIS Network Analyst.
    3. Щелкните на кнопке Закрыть (Close).
  7. Если панель инструментов Network Analyst еще не отображается, необходимо ее добавить.

  8. Щелкните Настройка > Панели инструментов > Network Analyst.

    Панель инструментов Network Analyst будет добавлена в ArcMap.

    Панель инструментов Network Analyst

  9. Если окно Network Analyst еще не отображается, необходимо его добавить.

  10. На панели инструментов Network Analyst щелкните на кнопке Окно Network Analyst.Окно Network Analyst

    Откроется прикрепляемое окно Network Analyst.

    Окно Network Analyst

  11. Окно Network Analyst можно закреплять и откреплять.

Создание слоя анализа для выбора маршрута транспорта

  1. Щёлкните на пункте Network Analyst на панели инструментов Network Analyst и щёлкните на Новая задача выбора маршрута транспорта (New Vehicle Routing Problem).

    Выбор Новой матрицы Источник-Назначение (New OD Cost Matrix)

    Слой анализа задачи выбора маршрута транспорта добавлен в окно Network Analyst. Классы сетевого анализа: Вызовы (Orders), Гаражи (Depots), Маршруты (Routes), Возвращения в гараж (Depot Visits), Границы (Breaks), Зоны маршрутов (Route Zones), Исходные точки маршрутов (Route Seed Points), Обновления маршрутов (Route Renewals), Специальные требования (Specialties), Пары заказов (Order Pairs), Точечные барьеры (Point Barriers), Линейные барьеры (Line Barriers) и Полигональные барьеры (Polygon Barriers) — пусты.

    Окно ArcGIS Network Analystс незаполненными классами

    Также в окно Таблица содержания (Table Of Contents) добавлен новый слой анализа.

    Слой анализа задачи выбора маршрута транспорта показан в таблице содержания

Добавление специальных условий

У логистической компании есть три машины. Одна из машин, работающих в центре, оборудована для погрузки кресел-колясок. Вы добавите Инвалидное кресло в качестве специального требования так, чтобы заказы, которые нуждаются в этом требовании, были назначены маршруту с лифтом для инвалидных кресел.

  1. В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Специальные требования (0) и выберите команду Добавить элемент.

    Создание специального условия

    Новое специальное условие Элемент 1 появится в разделе Специальные требования в окне Network Analyst. Откроется окно Свойства для нового специального требования.

  2. В окне Свойства введите Кресло-коляска в строке Имя.

    Название специального требования со значением Кресло-коляска

  3. Нажмите ОК.

Добавление заказов

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

АтрибутОписание

OrderName1

Имя пациента, которого нужно перевезти

PatientAddress

Адрес, по которому нужно забрать пациента

OrderName2

Уникальное имя адреса назначения

HospitalAddress

Адрес, по которому нужно доставить пациента

PickFrom

Самое раннее время, когда пациента можно забрать по адресу PatientAddress

PickTo

Самое позднее время, когда пациента можно забрать по адресу PatientAddress

TotalPassengers

Общее число пассажиров, которых нужно забрать

MaxTransitTime

Максимальное время, которое пациент может провести в машине

SpecialtyNames

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

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

В следующих шагах вы выполните геокодирование по адресам пациентов и больниц и загрузите результирующие местоположения как заказы.

  1. В окне Каталога в директории Home найдите файл OrderPairs.xls и дважды щелкните.

    Файл OrderPairs.xls развернётся и вы увидите таблицу Patients$.

  2. Щелкните правой кнопкой таблицу Patients$ и выберите Геокодировать адреса.

    Появится диалоговое окно Выбрать локатор адресов.

  3. Выберите SanFranciscoLocator.

    Локатор адресов SanFranciscoLocator включен в файл Exercise08.mxd.

  4. Нажмите ОК.

    Появится диалоговое окно Геокодирование адресов: SanFranciscoLocator.

  5. Щелкните стрелку раскрывающегося меню рядом с кнопкой обзор Обзор возле ниспадающего списка таблиц адресов.

    Откроется диалоговое окно Выберите таблицу, содержащую адреса.

  6. В раскрывающемся списке Искать в выберите Home – Tutorial.

    Добавляемая таблица является электронной таблицей Excel, которая предоставляется вместе с учебником по Network Analyst.

  7. Дважды щёлкните на файле OrderPairs.xls.
  8. Дважды щёлкните на элементе Patients$.

    Электронная таблица Patients будет добавлена в раскрывающийся список Таблица адресов.

  9. В раскрывающемся списке Street or Intersection выберите PatientAddress.
  10. Щёлкните обзорную кнопку Обзор рядом с окном Выходной шейп-файл или класс объектов:.

    Откроется диалоговое окно Сохранение данных в местоположении Home для Exercise08.mxd.

  11. В раскрывающемся списке Искать в выберите Home – Tutorial.
  12. В раскрывающемся списке Сохранить как тип выберите Классы пространственных объектов персональной и файловой баз геоданных.

    Список файлов и рабочих областей обновится.

  13. Дважды щёлкните на файле SanFrancisco.gdb.
  14. Удалите имя в текстовом поле Имя и введите Patients.

    В базе геоданных появится класс объектов с именем Patients.

  15. Нажмите Сохранить (Save).

    Текстовое поле Выходной шейп-файл или класс объектов в диалоговом окне Геокодирование адресов: SanFranciscoLocator обновится с учетом нового выходного пути.

    Заполненное диалоговое окно Геокодирование адресов: SanFranciscoLocator

  16. Нажмите ОК.

    Откроется диалоговое окно Геокодирование адресов и покажет, что все 15 адресов были найдены.

  17. Щелкните Закрыть (Close).

    Геокодированные адреса будут добавлены в документ карты в качестве слоя пространственных объектов Результат геокодирования: Patients.

  18. Повторите шаги 1 – 18, чтобы загрузить больницы назначения пациентов, но внесите следующие изменения:
    1. В шаге 9 задайте свойству Street or Intersection значение HospitalAddress.
    2. В шаге 14 введите DestinationHospitals в текстовом поле Имя.

      Диалоговое окно Геокодирование адресов: SanFranciscoLocator для больниц

      В таблице содержания должно быть два векторных слоя Результаты геокодирования: DestinationHospitals и Результаты геокодирования: Patients.

  19. В окне Таблица содержания отключите два слоя результатов геокодирования, чтобы они стали невидимыми на карте.
  20. В следующих шагах эти слои будут загружены в класс анализа сети Заказы.

  21. В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Заказы (0) и выберите команду Загрузить положения.

    Откроется диалоговое окно Загрузить положения.

  22. Выберите Результаты геокодирования: Patients в раскрывающемся списке Загрузить из.
  23. В разделе Свойства анализа положений диалогового окна Загрузить положения можно указывать, какие атрибуты слоя Результаты геокодирования: Patients будут содержать значения, на которые будет ссылаться Network Analyst для решения задачи по нахождению транспортного маршрута.

  24. Настройте свойства, перечисленные в разделе Свойства анализа положений так, чтобы они соответствовали значениям полей слоя Результаты геокодирования: Patients, как указано в дополнительных шагах ниже. (Следующее изображение содержит внесенные изменения.)
    1. Сопоставьте свойство Name полю OrderName1.
    2. Сопоставьте свойство Description полю PatientAddress.
    3. Сопоставьте свойство TimeWindowStart1 полю PickFrom.
    4. Сопоставьте свойство TimeWindowEnd1 полю PickTo.
    5. Сопоставьте свойство PickupQuantities полю TotalPassengers.
    6. Убедитесь, что свойство SpecialtyNames автоматически соответствует полю SpecialtyNames.
  25. Введите значение 2 в столбце Значение по умолчанию для свойства ServiceTime.

    Все загруженные адреса пациентов имеют значение 2 для свойства ServiceTime, которое означает время (в минутах) посадки в машину для каждого пассажира.

  26. Введите значение 0 в столбце Значение по умолчанию для свойства MaxViolationTime1.

    Установив для всех свойств MaxViolationTime1 значение 0, инструмент решения задачи VRP будет искать только маршруты для заказов в указанное время.

    Диалоговое окно Загрузить положения

  27. Нажмите ОК.

    Загружено 15 заказов. Заказы видно на карте и в окне Network Analyst.

  28. В следующих шагах больницы назначения также буду загружены в качестве заказов.
  29. В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Заказы (15) и выберите команду Загрузить положения.

    Откроется диалоговое окно Загрузить положения.

  30. Выберите Результаты геокодирования: DestinationHospitals в раскрывающемся списке Загрузить из.
  31. Настройте свойства, перечисленные в разделе Свойства анализа положений так, чтобы они соответствовали значениям полей слоя Результаты геокодирования: DestinationHospitals, как указано в дополнительных шагах ниже. (Следующее изображение содержит внесенные изменения.)
    1. Сопоставьте свойство Name полю OrderName2.

      Обратите внимание, что значение для атрибута Name должно быть уникальным в классе анализа сети Заказы. В данном случае есть несколько пациентов, которым нужно посетить одну и ту же больницу. Если бы адреса больниц использовались для выведения значения атрибута Name для Заказов, инструмент решатель VRP вернул бы сообщение об ошибке из-за повторяющихся значений имен.

    2. Сопоставьте свойство Description полю HospitalAddress.
    3. Сопоставьте свойство DeliveryQuantities полю TotalPassengers.
    4. Убедитесь, что свойство SpecialtyNames автоматически соответствует полю SpecialtyNames.
  32. Введите значение 2 в столбце Значение по умолчанию для свойства ServiceTime.

    Диалоговое окно Загрузить положения

  33. Нажмите ОК.

    30 заказов перечислены в окне Network Analyst в разделе анализа сети Заказы и отображены в качестве заказов на карте слоя задачи по нахождению транспортного маршрута.

Добавление парных заказов

Пассажиров нужно доставлять в определенную больницу. Добавляя объекты в класс анализа сети Пары заказов, можно указать, в какую больницу нужно отвезти пациентов и максимальное время, которое пациенты могут провести в машине в течение поездки в одну сторону.

  1. В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Пары заказов (0) и выберите команду Загрузить положения.

    Откроется диалоговое окно Загрузить положения.

  2. Щелкните кнопку Обзор Обзор рядом со стрелкой ниспадающего списка Загрузить из.
  3. В раскрывающемся списке Искать в выберите Home – Tutorial.

    Добавляемая таблица является электронной таблицей Excel, которая предоставляется вместе с учебником по ArcGIS Network Analyst.

  4. Дважды щёлкните на файле OrderPairs.xls.
  5. Дважды щёлкните на элементе Patients$.

    Электронная таблица Patients добавляется в список Загрузить из в диалоговом окне Загрузить положения.

  6. Настройте свойства, перечисленные в разделе Свойства анализа расположений так, чтобы они соответствовали значениям из таблицы Patients$ в соответствии с дополнительными шагами ниже.
    1. Сопоставьте свойство FirstOderName полю OrderName1.
    2. Сопоставьте свойство SecondOrderName полю OrderName2.
    3. Убедитесь, что свойство MaxTransitTime автоматически соответствует полю MaxTransitTime.
  7. Нажмите ОК.

    Пятнадцать пар заказов перечислены в окне Network Analyst в разделе Пары заказов класса сетевого анализа.

    Пары заказов в окне Network Analyst

Добавление складов

Логистическая компания использует машины из трех расположений, указанных на слое пространственных объектов CentralDepots в ArcMap. Эти точечные характеристики нужно добавить в класс анализа сети Станции.

  1. В окне Network Analyst щёлкните правой кнопкой мыши кнопку Станции (0) и выберите команду Загрузить положения.

    Откроется диалоговое окно Загрузить положения.

  2. Выберите CentralDepots в раскрывающемся списке Загрузить из.
  3. В разделе Свойства анализа положений убедитесь, что свойство Name автоматически соответствует полю Name.

    Диалоговое окно Загрузить положения

  4. Нажмите ОК.

    3 станции перечислены в окне Network Analyst на вкладке класса анализа сети Станции и отображены в качестве заказов на карте слоя задачи по нахождению транспортного маршрута.

Добавление маршрутов

У логистической компании три машины, каждая из которых может перевозить не более шести пассажиров. Машины уезжают с автобазы и возвращаются на нее после выполнения маршрута. Одна из машин, работающих в центре, оборудована для погрузки кресел-колясок.

Нужно добавить три маршрута (по одному для каждой машины) и указать, что машина, которая ездит по городу, была оборудована для погрузки кресел-колясок.

  1. В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Маршруты (0) и выберите команду Добавить элемент.

    Добавление элемента

    Новый маршрут Элемент1 добавляется на вкладке класса анализа сети Маршруты, после чего откроется окно Свойства.

  2. В окне Свойства задайте атрибуты для маршрута, как показано в таблице ниже, не изменяя значения атрибутов, заданные по умолчанию. В столбце описания приводятся пояснения по каждому значению.

    АтрибутЗначениеОписание

    Имя канала

    Центр города

    Название маршрута.

    StartDepotName

    Автобаза в центре города

    Машина выезжает с автобазы в центре города.

    EndDepotName

    Автобаза в центре города

    Машина возвращается на автобазу в центре города после выполнения маршрута.

    Ёмкость

    6

    Машина может вместить не более шести пассажиров одновременно.

    SpecialtyNames

    Кресло-коляска (Установите отметку Кресло-коляска для специального условия.)

    Машина оборудована для погрузки кресел-колясок.

    Окно Свойства маршрута

  3. Нажмите ОК.

    Новый маршрут Центр города указан в окне Network Analyst.

  4. Повторите шаги 1 – 3, чтобы добавить два других маршрута для машин, работающих в районе Северной бухты и Восточной бухты. Используйте следующие таблицы для этих новых маршрутов вместо свойств, перечисленных на шаге 2:

    АтрибутЗначение

    Имя канала

    Северная бухта

    StartDepotName

    Автобаза Северной бухты

    EndDepotName

    Автобаза Северной бухты

    Ёмкость

    6

    АтрибутЗначение

    Имя канала

    Восточная бухта

    StartDepotName

    Автобаза Восточной бухты

    EndDepotName

    Автобаза Восточной бухты

    Ёмкость

    6

    Обратите внимание, что эти машины оборудованы для погрузки кресел-колясок.

    В окне Network Analyst показаны три объекта маршрутов, которые перечислены в классе анализа сети Маршруты.

    Классы анализа сети

Добавление зон маршрута

Компания использует три машины, которые имеют лицензии на обслуживание заказов только в определенной зоне. Нужно добавить зоны маршрутов и связать из с машинами или маршрутами.

  1. В окне Network Analyst выберите элемент Зоны маршрутов (0).
  2. Щёлкните на инструменте Создание сетевого положения (Create Network Location) Инструмент создания сетевого положения на панели инструментов Network Analyst.
  3. На карте нарисуйте многоугольник, который в общих чертах охватывает центр города, как показано ниже.

    Щёлкните один раз, чтобы добавить вершину; щёлкните дважды, чтобы завершить создание многоугольника.

    Создание зоны маршрута
    Новая зона маршрута Графический указатель 1будет добавлена в класс зон маршрута в окне Network Analyst.

  4. В окне Network Analyst дважды щёлкните на объекте новой зоны маршрута Графический указатель 1.

    Откроется окно Свойства для зоны маршрута.

  5. Задайте свойства зоны маршрута, как показано в таблице ниже.

    АтрибутЗначениеОписание

    RouteName

    Центр города

    Название маршрута, с которым связана эта зона маршрута.

    IsHardZone

    Да

    Машина не может обслуживать заказы, которые не входят в зону маршрута. Если это свойство имеет значение True, то машина будет получать только те заказы, которые относятся к зоне маршрута.

    Свойства зоны маршрута

  6. Повторите шаги 1 – 5, чтобы добавить две другие зоны маршрута: одну для района Северной бухты и вторую для района Восточной бухты.

    На карте и в окне Network Analyst должно быть три объекта зоны маршрута.

    Три зоны маршрутов появляются на карте
    Три зоны маршрутов в окне Network Analyst

Установка свойств для анализа

Далее нужно задать свойства для анализа задачи по нахождению транспортного маршрута.

  1. Нажмите кнопку Свойства слоя анализа (Analysis Layer Properties) в окне Network Analyst.

    Кнопка Свойства слоя

    Откроется диалоговое окно Свойства слоя (Layer Properties).

  2. Перейдите на закладку Настройки анализа (Analysis Settings).
  3. Убедитесь, что в раскрывающемся списке Атрибут времени выбрано значение TravelTime (Минуты).

    Инструмент решения задачи VRP использует этот атрибут для расчета затрат между заказами и автобазами на основе времени.

  4. Убедитесь, что в раскрывающемся списке Атрибут расстояния ничего не выбрано.

    Поскольку параметры издержек на основе расстояния, такие как CostPerUnitDistance или MaxTotalDistance, не используются, атрибут расстояния не требуется.

  5. Задайте свойству Дата по умолчанию значение День недели. В раскрывающемся списке День недели выберите Понедельник.
  6. Поскольку вместимость машины измеряется только количеством пассажиров, убедитесь, что свойство Число характеристик емкости имеет значение 1.

    Если бы вместимость измерялась числом пассажиров и максимальным числом кресел-колясок, число характеристик емкости имело бы значение 2.

  7. Оставьте значения по умолчанию для других свойств.

    Закладка Настройки анализа

  8. Нажмите ОК.

Запустите процесс для нахождения решения

  1. Щёлкните на кнопке Расчет (Solve) Решение на панели инструментов Network Analyst.

    Инструмент решения задачи VRP вычислит маршруты для каждой машины. Каждый маршрут начинается на автобазе, подбирает одного или двух человек, если время, которое они могут провести в машине, меньше значения свойства MaxTransitTime, указанного в парном заказе, отвозит их в нужную больницу, продолжает подбирать и отвозить других людей и в конце возвращается на автобазу. Маршруты обслуживают только заказы в заданных зонах маршрутов.

    Результаты анализа VRP

Определение пошаговых путевых листов для маршрутов

  1. Щёлкните на кнопке Окно направлений (Directions Window) Направления на панели инструментов Network Analyst.

    Откроется диалоговое окно Направления (Directions).

  2. При необходимости также экспортировать задачу по нахождению транспортного маршрута в качестве файла слоя (<имя_файла>.lyr) на диск, чтобы его можно было загрузить в другой документ карты.
  3. Выйдите из ArcMap без сохранения изменений.

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2019 Esri. | Конфиденциальность | Правовая информация