Доступно с лицензией Network Analyst.
- Подготовка отображения
- Создание слоя анализа для выбора маршрута транспорта
- Добавление специальных условий
- Добавление заказов
- Добавление парных заказов
- Добавление складов
- Добавление маршрутов
- Добавление зон маршрута
- Установка свойств для анализа
- Запустите процесс для нахождения решения
- Определение пошаговых путевых листов для маршрутов
Цель этого упражнения – найти наиболее оптимальные маршруты для автопарка, чтобы перевозить людей, у которых нет другого доступа к транспорту, из дома до больницы для прохождения лечения. Упражнение будет выполнено путем решения задачи нахождения транспортного маршрута (VRP) с учетом парных заказов, которая связывает два последовательных заказа (остановки) так, что транспорт будет подбирать людей и доставлять их в нужную больницу. Также будут соблюдены дополнительные требования с помощью других характеристик слоя анализа задачи VRP. Например, будет введено максимальное время в пути для парных заказов так, чтобы люди не проводили слишком много времени в пути. Будут использованы временные ограничения, так как люди не должны опаздывать в больницу. Некоторым людям требуются кресла-коляски, поэтому для них нужно будет отправить транспорт со специальными подъемниками для кресел-колясок. После определения маршрутов будут созданы пошаговые указания результирующих маршрутов, которые можно отправить электронным способом или распечатать и передать водителям.
Подготовка отображения
- Если файл Exercise08.mxd открыт в ArcMap, переходите к шагу 6.
- Запустите ArcMap.
- В диалоговом окне ArcMap – Начало работы (ArcMap – Getting Started) щелкните Существующие карты (Existing Maps) > Найти еще (Browse for more).
Появится диалоговое окно Открыть документ ArcMap (Open ArcMap Document).
- Перейдите к папке C:\ArcGIS\ArcTutor\ArcGIS Network Analyst\Tutorial.
Это местоположение по умолчанию для установки учебных материалов.
- Дважды щёлкните на файле Exercise08.mxd.
Документ карты откроется в ArcMap.
- Активируйте дополнительный модуль ArcGIS Network Analyst.
- Щелкните Настройка (Customize) > Дополнительные модули (Extensions).
Откроется диалоговое окно Дополнительные модули (Extensions).
- Отметьте ArcGIS Network Analyst.
- Щелкните на кнопке Закрыть (Close).
- Щелкните Настройка (Customize) > Дополнительные модули (Extensions).
- Щелкните Настройка > Панели инструментов > Network Analyst.
Панель инструментов Network Analyst будет добавлена в ArcMap.
- На панели инструментов Network Analyst щелкните на кнопке Окно Network Analyst.
Откроется прикрепляемое окно Network Analyst.
Если панель инструментов Network Analyst еще не отображается, необходимо ее добавить.
Если окно Network Analyst еще не отображается, необходимо его добавить.
Окно Network Analyst можно закреплять и откреплять.
Создание слоя анализа для выбора маршрута транспорта
- Щёлкните на пункте Network Analyst на панели инструментов Network Analyst и щёлкните на Новая задача выбора маршрута транспорта (New Vehicle Routing Problem).
Слой анализа задачи выбора маршрута транспорта добавлен в окно Network Analyst. Классы сетевого анализа: Вызовы (Orders), Гаражи (Depots), Маршруты (Routes), Возвращения в гараж (Depot Visits), Границы (Breaks), Зоны маршрутов (Route Zones), Исходные точки маршрутов (Route Seed Points), Обновления маршрутов (Route Renewals), Специальные требования (Specialties), Пары заказов (Order Pairs), Точечные барьеры (Point Barriers), Линейные барьеры (Line Barriers) и Полигональные барьеры (Polygon Barriers) — пусты.
Также в окно Таблица содержания (Table Of Contents) добавлен новый слой анализа.
Добавление специальных условий
У логистической компании есть три машины. Одна из машин, работающих в центре, оборудована для погрузки кресел-колясок. Вы добавите Инвалидное кресло в качестве специального требования так, чтобы заказы, которые нуждаются в этом требовании, были назначены маршруту с лифтом для инвалидных кресел.
- В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Специальные требования (0) и выберите команду Добавить элемент.
Новое специальное условие Элемент 1 появится в разделе Специальные требования в окне Network Analyst. Откроется окно Свойства для нового специального требования.
- В окне Свойства введите Кресло-коляска в строке Имя.
- Нажмите ОК.
Добавление заказов
В учебных данных найдите электронную таблицу. Таблица содержит сведения о каждом пациенте, включая имена и домашние адреса, название и адрес больницы, в которую они должны быть доставлены, время, когда пациента нужно подобрать и т.д. В таблице ниже приведено описание полей электронной таблицы:
Атрибут | Описание |
---|---|
OrderName1 | Имя пациента, которого нужно перевезти |
PatientAddress | Адрес, по которому нужно забрать пациента |
OrderName2 | Уникальное имя адреса назначения |
HospitalAddress | Адрес, по которому нужно доставить пациента |
PickFrom | Самое раннее время, когда пациента можно забрать по адресу PatientAddress |
PickTo | Самое позднее время, когда пациента можно забрать по адресу PatientAddress |
TotalPassengers | Общее число пассажиров, которых нужно забрать |
MaxTransitTime | Максимальное время, которое пациент может провести в машине |
SpecialtyNames | Указывает особые потребности пассажира, например, кресло-коляску |
В данном случае пассажиры и больницы связаны, поскольку каждый пациент должен попасть в определенную больницу. Эту ситуацию можно моделировать с помощью парных заказов, загрузив обоих пациентов и адреса больниц в классы анализа сети Заказы и связав их с новыми объектами парных заказов.
В следующих шагах вы выполните геокодирование по адресам пациентов и больниц и загрузите результирующие местоположения как заказы.
- В окне Каталога в директории Home найдите файл OrderPairs.xls и дважды щелкните.
Файл OrderPairs.xls развернётся и вы увидите таблицу Patients$.
- Щелкните правой кнопкой таблицу Patients$ и выберите Геокодировать адреса.
Появится диалоговое окно Выбрать локатор адресов.
- Выберите SanFranciscoLocator.
Локатор адресов SanFranciscoLocator включен в файл Exercise08.mxd.
- Нажмите ОК.
Появится диалоговое окно Геокодирование адресов: SanFranciscoLocator.
- Щелкните стрелку раскрывающегося меню рядом с кнопкой обзор возле ниспадающего списка таблиц адресов.
Откроется диалоговое окно Выберите таблицу, содержащую адреса.
- В раскрывающемся списке Искать в выберите Home – Tutorial.
Добавляемая таблица является электронной таблицей Excel, которая предоставляется вместе с учебником по Network Analyst.
- Дважды щёлкните на файле OrderPairs.xls.
- Дважды щёлкните на элементе Patients$.
Электронная таблица Patients будет добавлена в раскрывающийся список Таблица адресов.
- В раскрывающемся списке Street or Intersection выберите PatientAddress.
- Щёлкните обзорную кнопку рядом с окном Выходной шейп-файл или класс объектов:.
Откроется диалоговое окно Сохранение данных в местоположении Home для Exercise08.mxd.
- В раскрывающемся списке Искать в выберите Home – Tutorial.
- В раскрывающемся списке Сохранить как тип выберите Классы пространственных объектов персональной и файловой баз геоданных.
Список файлов и рабочих областей обновится.
- Дважды щёлкните на файле SanFrancisco.gdb.
- Удалите имя в текстовом поле Имя и введите Patients.
В базе геоданных появится класс объектов с именем Patients.
- Нажмите Сохранить (Save).
Текстовое поле Выходной шейп-файл или класс объектов в диалоговом окне Геокодирование адресов: SanFranciscoLocator обновится с учетом нового выходного пути.
- Нажмите ОК.
Откроется диалоговое окно Геокодирование адресов и покажет, что все 15 адресов были найдены.
- Щелкните Закрыть (Close).
Геокодированные адреса будут добавлены в документ карты в качестве слоя пространственных объектов Результат геокодирования: Patients.
- Повторите шаги 1 – 18, чтобы загрузить больницы назначения пациентов, но внесите следующие изменения:
- В шаге 9 задайте свойству Street or Intersection значение HospitalAddress.
- В шаге 14 введите DestinationHospitals в текстовом поле Имя.
В таблице содержания должно быть два векторных слоя Результаты геокодирования: DestinationHospitals и Результаты геокодирования: Patients.
- В окне Таблица содержания отключите два слоя результатов геокодирования, чтобы они стали невидимыми на карте.
- В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Заказы (0) и выберите команду Загрузить положения.
Откроется диалоговое окно Загрузить положения.
- Выберите Результаты геокодирования: Patients в раскрывающемся списке Загрузить из.
- Настройте свойства, перечисленные в разделе Свойства анализа положений так, чтобы они соответствовали значениям полей слоя Результаты геокодирования: Patients, как указано в дополнительных шагах ниже. (Следующее изображение содержит внесенные изменения.)
- Сопоставьте свойство Name полю OrderName1.
- Сопоставьте свойство Description полю PatientAddress.
- Сопоставьте свойство TimeWindowStart1 полю PickFrom.
- Сопоставьте свойство TimeWindowEnd1 полю PickTo.
- Сопоставьте свойство PickupQuantities полю TotalPassengers.
- Убедитесь, что свойство SpecialtyNames автоматически соответствует полю SpecialtyNames.
- Введите значение 2 в столбце Значение по умолчанию для свойства ServiceTime.
Все загруженные адреса пациентов имеют значение 2 для свойства ServiceTime, которое означает время (в минутах) посадки в машину для каждого пассажира.
- Введите значение 0 в столбце Значение по умолчанию для свойства MaxViolationTime1.
Установив для всех свойств MaxViolationTime1 значение 0, инструмент решения задачи VRP будет искать только маршруты для заказов в указанное время.
- Нажмите ОК.
Загружено 15 заказов. Заказы видно на карте и в окне Network Analyst.
- В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Заказы (15) и выберите команду Загрузить положения.
Откроется диалоговое окно Загрузить положения.
- Выберите Результаты геокодирования: DestinationHospitals в раскрывающемся списке Загрузить из.
- Настройте свойства, перечисленные в разделе Свойства анализа положений так, чтобы они соответствовали значениям полей слоя Результаты геокодирования: DestinationHospitals, как указано в дополнительных шагах ниже. (Следующее изображение содержит внесенные изменения.)
- Сопоставьте свойство Name полю OrderName2.
Обратите внимание, что значение для атрибута Name должно быть уникальным в классе анализа сети Заказы. В данном случае есть несколько пациентов, которым нужно посетить одну и ту же больницу. Если бы адреса больниц использовались для выведения значения атрибута Name для Заказов, инструмент решатель VRP вернул бы сообщение об ошибке из-за повторяющихся значений имен.
- Сопоставьте свойство Description полю HospitalAddress.
- Сопоставьте свойство DeliveryQuantities полю TotalPassengers.
- Убедитесь, что свойство SpecialtyNames автоматически соответствует полю SpecialtyNames.
- Сопоставьте свойство Name полю OrderName2.
- Введите значение 2 в столбце Значение по умолчанию для свойства ServiceTime.
- Нажмите ОК.
30 заказов перечислены в окне Network Analyst в разделе анализа сети Заказы и отображены в качестве заказов на карте слоя задачи по нахождению транспортного маршрута.
В следующих шагах эти слои будут загружены в класс анализа сети Заказы.
В разделе Свойства анализа положений диалогового окна Загрузить положения можно указывать, какие атрибуты слоя Результаты геокодирования: Patients будут содержать значения, на которые будет ссылаться Network Analyst для решения задачи по нахождению транспортного маршрута.
Добавление парных заказов
Пассажиров нужно доставлять в определенную больницу. Добавляя объекты в класс анализа сети Пары заказов, можно указать, в какую больницу нужно отвезти пациентов и максимальное время, которое пациенты могут провести в машине в течение поездки в одну сторону.
- В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Пары заказов (0) и выберите команду Загрузить положения.
Откроется диалоговое окно Загрузить положения.
- Щелкните кнопку Обзор рядом со стрелкой ниспадающего списка Загрузить из.
- В раскрывающемся списке Искать в выберите Home – Tutorial.
Добавляемая таблица является электронной таблицей Excel, которая предоставляется вместе с учебником по ArcGIS Network Analyst.
- Дважды щёлкните на файле OrderPairs.xls.
- Дважды щёлкните на элементе Patients$.
Электронная таблица Patients добавляется в список Загрузить из в диалоговом окне Загрузить положения.
- Настройте свойства, перечисленные в разделе Свойства анализа расположений так, чтобы они соответствовали значениям из таблицы Patients$ в соответствии с дополнительными шагами ниже.
- Сопоставьте свойство FirstOderName полю OrderName1.
- Сопоставьте свойство SecondOrderName полю OrderName2.
- Убедитесь, что свойство MaxTransitTime автоматически соответствует полю MaxTransitTime.
- Нажмите ОК.
Пятнадцать пар заказов перечислены в окне Network Analyst в разделе Пары заказов класса сетевого анализа.
Добавление складов
Логистическая компания использует машины из трех расположений, указанных на слое пространственных объектов CentralDepots в ArcMap. Эти точечные характеристики нужно добавить в класс анализа сети Станции.
- В окне Network Analyst щёлкните правой кнопкой мыши кнопку Станции (0) и выберите команду Загрузить положения.
Откроется диалоговое окно Загрузить положения.
- Выберите CentralDepots в раскрывающемся списке Загрузить из.
- В разделе Свойства анализа положений убедитесь, что свойство Name автоматически соответствует полю Name.
- Нажмите ОК.
3 станции перечислены в окне Network Analyst на вкладке класса анализа сети Станции и отображены в качестве заказов на карте слоя задачи по нахождению транспортного маршрута.
Добавление маршрутов
У логистической компании три машины, каждая из которых может перевозить не более шести пассажиров. Машины уезжают с автобазы и возвращаются на нее после выполнения маршрута. Одна из машин, работающих в центре, оборудована для погрузки кресел-колясок.
Нужно добавить три маршрута (по одному для каждой машины) и указать, что машина, которая ездит по городу, была оборудована для погрузки кресел-колясок.
- В окне Network Analyst щёлкните правой кнопкой мыши на кнопке Маршруты (0) и выберите команду Добавить элемент.
Новый маршрут Элемент1 добавляется на вкладке класса анализа сети Маршруты, после чего откроется окно Свойства.
- В окне Свойства задайте атрибуты для маршрута, как показано в таблице ниже, не изменяя значения атрибутов, заданные по умолчанию. В столбце описания приводятся пояснения по каждому значению.
Атрибут Значение Описание Имя канала
Центр города
Название маршрута.
StartDepotName
Автобаза в центре города
Машина выезжает с автобазы в центре города.
EndDepotName
Автобаза в центре города
Машина возвращается на автобазу в центре города после выполнения маршрута.
Ёмкость
6
Машина может вместить не более шести пассажиров одновременно.
SpecialtyNames
Кресло-коляска (Установите отметку Кресло-коляска для специального условия.)
Машина оборудована для погрузки кресел-колясок.
- Нажмите ОК.
Новый маршрут Центр города указан в окне Network Analyst.
- Повторите шаги 1 – 3, чтобы добавить два других маршрута для машин, работающих в районе Северной бухты и Восточной бухты. Используйте следующие таблицы для этих новых маршрутов вместо свойств, перечисленных на шаге 2:
Атрибут Значение Имя канала
Северная бухта
StartDepotName
Автобаза Северной бухты
EndDepotName
Автобаза Северной бухты
Ёмкость
6
Атрибут Значение Имя канала
Восточная бухта
StartDepotName
Автобаза Восточной бухты
EndDepotName
Автобаза Восточной бухты
Ёмкость
6
Обратите внимание, что эти машины оборудованы для погрузки кресел-колясок.
В окне Network Analyst показаны три объекта маршрутов, которые перечислены в классе анализа сети Маршруты.
Добавление зон маршрута
Компания использует три машины, которые имеют лицензии на обслуживание заказов только в определенной зоне. Нужно добавить зоны маршрутов и связать из с машинами или маршрутами.
- В окне Network Analyst выберите элемент Зоны маршрутов (0).
- Щёлкните на инструменте Создание сетевого положения (Create Network Location) на панели инструментов Network Analyst.
- На карте нарисуйте многоугольник, который в общих чертах охватывает центр города, как показано ниже.
Щёлкните один раз, чтобы добавить вершину; щёлкните дважды, чтобы завершить создание многоугольника.
Новая зона маршрута Графический указатель 1будет добавлена в класс зон маршрута в окне Network Analyst.
- В окне Network Analyst дважды щёлкните на объекте новой зоны маршрута Графический указатель 1.
Откроется окно Свойства для зоны маршрута.
- Задайте свойства зоны маршрута, как показано в таблице ниже.
Атрибут Значение Описание RouteName
Центр города
Название маршрута, с которым связана эта зона маршрута.
IsHardZone
Да
Машина не может обслуживать заказы, которые не входят в зону маршрута. Если это свойство имеет значение True, то машина будет получать только те заказы, которые относятся к зоне маршрута.
- Повторите шаги 1 – 5, чтобы добавить две другие зоны маршрута: одну для района Северной бухты и вторую для района Восточной бухты.
На карте и в окне Network Analyst должно быть три объекта зоны маршрута.
Установка свойств для анализа
Далее нужно задать свойства для анализа задачи по нахождению транспортного маршрута.
- Нажмите кнопку Свойства слоя анализа (Analysis Layer Properties) в окне Network Analyst.
Откроется диалоговое окно Свойства слоя (Layer Properties).
- Перейдите на закладку Настройки анализа (Analysis Settings).
- Убедитесь, что в раскрывающемся списке Атрибут времени выбрано значение TravelTime (Минуты).
Инструмент решения задачи VRP использует этот атрибут для расчета затрат между заказами и автобазами на основе времени.
- Убедитесь, что в раскрывающемся списке Атрибут расстояния ничего не выбрано.
Поскольку параметры издержек на основе расстояния, такие как CostPerUnitDistance или MaxTotalDistance, не используются, атрибут расстояния не требуется.
- Задайте свойству Дата по умолчанию значение День недели. В раскрывающемся списке День недели выберите Понедельник.
- Поскольку вместимость машины измеряется только количеством пассажиров, убедитесь, что свойство Число характеристик емкости имеет значение 1.
Если бы вместимость измерялась числом пассажиров и максимальным числом кресел-колясок, число характеристик емкости имело бы значение 2.
- Оставьте значения по умолчанию для других свойств.
- Нажмите ОК.
Запустите процесс для нахождения решения
- Щёлкните на кнопке Расчет (Solve) на панели инструментов Network Analyst.
Инструмент решения задачи VRP вычислит маршруты для каждой машины. Каждый маршрут начинается на автобазе, подбирает одного или двух человек, если время, которое они могут провести в машине, меньше значения свойства MaxTransitTime, указанного в парном заказе, отвозит их в нужную больницу, продолжает подбирать и отвозить других людей и в конце возвращается на автобазу. Маршруты обслуживают только заказы в заданных зонах маршрутов.
Определение пошаговых путевых листов для маршрутов
- Щёлкните на кнопке Окно направлений (Directions Window) на панели инструментов Network Analyst.
Откроется диалоговое окно Направления (Directions).
- При необходимости также экспортировать задачу по нахождению транспортного маршрута в качестве файла слоя (<имя_файла>.lyr) на диск, чтобы его можно было загрузить в другой документ карты.
- Выйдите из ArcMap без сохранения изменений.