Доступно с лицензией Network Analyst.
Инструмент геообработки Решить задачу выбора маршрута транспорта (Solve Vehicle Routing Problem) создает следующую таблицу и классы пространственных объектов в качестве выходных данных: Остановки (Stops), Неназначенные остановки (UnassignedStops), Маршруты (Routes), Путевой лист (Directions). В следующих подразделах приведено описание выходных таблиц и классов пространственных объектов и соответствующих им полей атрибутов.
Класс пространственных объектов Маршруты (Routes)
Линейный класс пространственных объектов Маршруты (Routes) представляет водителей, транспортные средства и маршруты транспортных средств для задачи выбора маршрута. По умолчанию именем данного выходного класса пространственных объектов является Routes, но вы можете изменить его на любое другое имя путем изменения параметра Имя выходных маршрутов (Output Routes Name) (output_routes_name в Python) перед расчетом.
ArcGIS присваивает классу пространственных объектов Маршруты (Routes) ту же систему координат, которую использует лежащий ниже набор сетевых данных. Это может управляться путем ввода значения среды геообработки Выходная система координат (Output Coordinate System).
Имена полей класса пространственных объектов Маршруты (Routes) и их описание приведено ниже.
Имя поля | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Name | Название маршрута. |
Shape | Поле геометрии, показывающее форму маршрута. Используйте параметр Заполнить линии маршрута (Populate Route Lines) (populate_route_lines в Python), чтобы определить необходимость заполнения данного поля. Класс пространственных объектов Маршруты (Routes) всегда создается и заполняется данным во время выполнения инструмента Решить задачу выбора маршрута транспорта (Solve Vehicle Routing Problem). При этом параметр Заполнить линии маршрута (Populate Route Lines) (populate_route_lines в Python) позволяет вам выбирать необходимость создания и записи значений поля Shape для линейных объектов. Если вы решите не заполнять значения поля Форма (Shape), то это увеличит скорость расчета и снизит объем обмена данными между сервером и клиентом; при этом пользователям зачастую требуется отобразить маршруты на карте, что требует заполнения поля Форма (Shape). |
ViolatedConstraints | Это поле содержит сводку по нарушениям ограничений, и значение ему присваивается после операции расчета. Если маршрут вызывает нарушение ограничения, полю может быть назначено сочетание одного или нескольких нарушений, перечисленных ниже.
|
OrderCount | Число заказов, назначенных маршруту. |
TotalCost | Общие затраты на эксплуатацию маршрута, которые являются суммой значений следующих полей:
|
RegularTimeCost | Стоимость обычного рабочего времени, за исключением неоплачиваемых перерывов. |
OvertimeCost | Стоимость сверхурочной работы, за исключением неоплачиваемых перерывов. |
DistanceCost | Компонент стоимости расстояния, получаемый умножением значений полей TotalDistance и CostPerUnitDistance. Это поле имеет нулевое значение, если атрибут расстояния не указан до выполнения расчета. |
TotalTime | Общая длительность маршрута. Она включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Значение TotalTime является суммой значений следующих полей:
Единица измерения для значения данного поля задается параметром Единицы поля времени (Time Field Units) (time_units в Python). |
TotalOrderServiceTime | Общее время обслуживания, потраченное на всех заказах по маршруту. Единица измерения для значения данного поля задается параметром Единицы поля времени (Time Field Units) (time_units в Python). |
TotalBreakServiceTime | Общее время обслуживания, потраченное на всех перерывах по маршруту. Единица измерения для значения данного поля задается параметром Единицы поля времени (Time Field Units) (time_units в Python). |
TotalTravelTime | Общее время в пути для маршрута. Единица измерения для значения данного поля задается параметром Единицы поля времени (Time Field Units) (time_units в Python). |
TotalDistance | Общее расстояние пути для маршрута. Единица измерения для значения данного поля указывается параметром Единицы поля расстояния (Distance Field Units) (distance_units для Python). Это поле имеет нулевое значение, если атрибут расстояния не указан до выполнения расчета. |
StartTime | Время начала маршрута. Маршрут может начинаться до начала временного окна его начальной станции; в этом случае на начальной станции будет затрачено время ожидания. При использовании данных трафика, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня берется из элемента сети, на котором расположена начальная станция. |
EndTime | Время окончания маршрута. Маршрут заканчивается по завершении обслуживания на конечной станции. При использовании данных трафика, охватывающих несколько часовых поясов, часовой пояс для данного значения времени дня берется из элемента сети, на котором расположена конечная станция. |
TotalWaitTime | Общее время ожидания на всех точках заказов, станциях и перерывах по маршруту. Единица измерения для значения данного поля задается параметром Единицы поля времени (Time Field Units) (time_units в Python). |
TotalViolationTime | Общее время нарушения на всех заказах и перерывах по маршруту. Единица измерения для значения данного поля задается параметром Единицы поля времени (Time Field Units) (time_units в Python). |
RenewalCount | Для маршрута с обновлениями это аналогично количеству остановок на станциях, для целей обновления транспортного средства, например его разгрузки или разгрузки. |
TotalRenewalServiceTime | Для маршрута с обновлениями общее время обслуживания, потраченное при всех посещениях для обновления загрузки по маршруту. Единица измерения для значения данного поля задается параметром Единицы поля времени (Time Field Units) (time_units в Python). |
Класс пространственных объектов Путевой лист (Directions)
Путевой лист (Directions) представляет собой линейный класс пространственных объектов, заполненный инструкциями для последовательных поворотов, которые помогают водителям следовать назначенным маршрутам. По умолчанию именем данного выходного класса пространственных объектов является Directions, но вы можете изменить его на любое другое имя путем изменения параметра Имя выходных направлений (output_directions_name в Python) перед расчетом. Кроме того, инструмент Решить задачу выбора маршрута транспорта всегда создает класс пространственных объектов Путевой лист; однако вы можете использовать параметр Заполнить путевой лист (populate_directions в Python) для выбора необходимости заполнения класса пространственных объектов значениями во время расчета. По умолчанию они не заполняются. Если путевой лист вам не нужен, то вы можете значительно сократить время расчета и объем данных, передаваемых от серверов к клиентам.
ArcGIS присваивает классу пространственных объектов Путевой лист (Directions) ту же систему координат, которую использует лежащий ниже набор сетевых данных. Это может управляться путем ввода значения среды геообработки Выходная система координат (Output Coordinate System).
Имена полей класса пространственных объектов Путевой лист (Directions) и их описание приведено ниже.
Имя поля | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Shape | Поле геометрии указывает форму линий. |
RouteName | Название маршрута, к которому применяется действие перемещения. |
ArriveTime | Время дня для начала заданного действия перемещения. Если маршрут выполняется за несколько дней, то отображается дата и время дня. |
Type | Данное поле предназначено для продвинутых пользователей, которые хотят настроить текст направления движения. Большинство пользователей могут обеспечить соблюдение требований путем игнорирования данного поля и использования поля Text. Type ссылается на постоянную одного из двух списков: esriDirectionsManueverType or esriDirectionsStringType. (См. описание поля SubItemType для того, чтобы узнать к каким спискам относится значение Type.) |
SubItemType | Данное поле предназначено для продвинутых пользователей, которые хотят настроить текст направления движения. Большинство пользователей могут обеспечить соблюдение требований путем игнорирования данного поля и использования поля Text. SubItemType работает в сочетании с Type для создания направлений перемещения, указанных в поле Text. Поле SubItemType указывает, ссылается ли поле Type на константу списка esriDirectionsManueverType или списка esriDirectionsStringType.
|
Text | Текстовое описание направления движения. |
ElapsedTime | Время, прошедшее с начала текущего направления движения до начала следующего или до тех пор, пока маршрут не закончится на последнем направлении. Некоторые направления движения включают дополнительные записи для времени обслуживания, нарушения времени и т. д. В таких случаях истекшее время реплицируется для каждой записи. При необходимости суммирования общего истекшего времени выберите записи со значением параметра Type, равным 1, и выполните суммирование таких записей. Единица измерения для значения данного поля задается параметром Единицы поля времени (Time Field Units) (time_units в Python). |
DriveDistance | Расстояние, с которого началось текущее направление движения до начала следующего или до места, где маршрут закончится на последнем направлении движения. Данное значение равно нулю для направлений движения, которые происходят том же положении, где начинается другое. |
Таблица Остановки (Stops)
Таблица Остановки (Stops) предоставляет информацию об остановках, сделанных на станциях, на заказах и в перерывах. Информация, включает в себя маршруты, совершающие остановки, время прибытия и отправления, а также последовательность остановок.
По умолчанию именем данной выходной таблицы является Stops, но вы можете изменить его на любое другое имя путем изменения параметра Имя выходных остановок (Output Stops Name) (output_stops_name для Python) перед вычислением.
Имена полей таблицы Остановки (Stops) и их описание приведено ниже.
Имя поля | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
Name | Имя остановки. Оно является внешним ключом для имени станции, заказа или перерыва в наборах входных объектов и наборе записей. Входной объект или набор записей указывается полем StopType. |
PickupQuantities | Количество груза или число людей, которое необходимо забрать с остановки. При доставке к остановке множества размеров, каждое количество отделяется пробелом. Единицы измерения для данного поля не хранятся. Вам нужно выбрать единицы, исходя из того, что вы ввели в поле Quantities входных маршрутов и в поля PickupQuantities и DeliveryQuantities входных заказов. (Все эти поля должны быть введены с использованием аналогичных единиц измерения и количества размеров.) |
DeliveryQuantities | Количество груза или число людей, которое необходимо доставить на остановку. При доставке к остановке множества размеров, каждое количество отделяется пробелом. Единицы измерения для данного поля не хранятся. Вам нужно выбрать единицы, исходя из того, что вы ввели в поле Quantities входных маршрутов и в поля PickupQuantities и DeliveryQuantities входных заказов. (Все эти поля должны быть введены с использованием аналогичных единиц измерения и количества размеров.) |
StopType | Указывает, что именно представляет остановка – станцию, заказ или перерыв. В поле хранится кодированное значение, которое может быть интерпретировано следующим образом:
|
RouteName | Имя маршрута, на котором выполняется остановка. |
Sequence | Относительная последовательность, в которой назначенные маршруты посещают остановку. Сортировка по полям RouteName и Sequence создает упорядоченный список остановок для каждого маршрута. |
FromPreviousTravelTime | Истекшее время в пути от предыдущей остановки маршрута до текущей остановки. Единица измерения для значения данного поля задается параметром Единицы поля времени (Time Field Units) (time_units в Python). |
FromPreviousDistance | Расстояние по маршруту от предыдущей остановки до текущей остановки маршрута. Единица измерения для значения данного поля указывается параметром Единицы поля расстояния (Distance Field Units) (distance_units для Python). |
ArriveCurbApproach | Указывает на сторону транспортного средства, с которой должен находиться бордюр при прибытии на остановку. |
DepartCurbApproach | Указывает на сторону транспортного средства, с которой должен находиться бордюр при отправлении с остановки. |
ArriveTime | Время дня, в которое маршрут прибывает на остановку. Когда набор сетевых данных настроен с использованием часовых поясов, значение времени дня соответствует часовому поясу, в котором расположена остановка; в противном случае оно соответствует часовому поясу, который настроен на компьютере для выполнения анализа. |
DepartTime | Время дня, когда производится отправление маршрута от остановки. Когда набор сетевых данных настроен с использованием часовых поясов, значение времени дня соответствует часовому поясу, в котором расположена остановка; в противном случае оно соответствует часовому поясу, который настроен на компьютере для выполнения анализа. |
ArriveTimeUTC | Время дня, в которое маршрут прибывает на остановку. Данное значение указываются в формате времени по Гринвичу (UTC). Данное поле является нулевым, если часовые пояса не настроены для набора сетевых данных. |
DepartTimeUTC | Время дня, когда производится отправление маршрута от остановки. Данное значение указываются в формате времени по Гринвичу (UTC). Данное поле является нулевым, если часовые пояса не настроены для набора сетевых данных. |
WaitTime | Время ожидания или задержки на остановке. Например, значение времени ожидания будет добавлено, если по маршруту предусмотрено ожидание открытия (начала) временного окна. |
ViolationTime | Величина времени между окончанием временного окна остановки и прибытием транспортного средства по маршруту. |
Отображение остановок
Очевидно, что таблица Остановки (Stops) не является классом пространственных объектов, это означает, что вы не можете просто добавить таблицу на карту для просмотра мест остановок. Вместо этого вам необходимо предпринять дополнительные шаги для отображения остановок на карте. (Руководство по выполнению данной операции приведено ниже.) Данная схема может показаться неоправданно сложной, если вам необходимо отобразить остановки маршрута на карте; однако, помните, что данный инструмент предназначен для создания веб-сервисов VRP. Поэтому выходные данные разработаны таким образом, чтобы максимально сократить работу сервера и передачу данных. Тем не менее, выходные данные не слишком разреженные; они все еще предоставляют вам необходимую информацию для отображения остановок в виде точечных объектов.
Например, для просмотра места остановок в точках заказов, привяжите таблицу Остановки (Stops) к исходному набору объектов Заказы (Orders), который использовался как входной. Вы можете выбрать и присоединить эти наборы данных при помощи полей StopType и Name таблицы Stops и поля Name набора объектов Orders. Вы можете использовать аналогичный подход для просмотра остановок на станциях.
В отличие от заказов и станций, перерывы не связаны с набором входных объектов. Поэтому вам необходимо использовать другой метод для их отображения. Вы можете создать путевой лист в анализе, выбрать линии, которые представляют объекты, и использовать инструмент Вершины объекта в точки (Feature Vertices To Points) для преобразования их в точки.
Таблица UnassignedStops
В таблице Неназначенные остановки (UnassignedStops) приведен перечень заказов, которые не могут быть посещены маршрутами. В ней также указано, почему невозможно посетить остановку, что позволяет вам внести необходимые изменения для устранения проблемы.
По умолчанию именем данной выходной таблицы является Stops, но вы можете изменить его на любое другое имя путем изменения параметра Имя выходных неназначенных остановок (output_unassigned_stops_name в Python) перед вычислением.
Имена полей таблицы Остановки (Stops) и их описание приведено ниже.
Имя поля | Описание |
---|---|
ObjectID | Управляемое системой поле ID. |
StopType | Указывает, что именно представляет остановка – станцию, заказ или перерыв. В поле хранится кодированное значение, которое может быть интерпретировано следующим образом:
|
Name | Имя остановки. Оно является внешним ключом для имени станции, заказа или перерыва в наборах входных объектов и наборе записей. Входной объект или набор записей указывается полем StopType. |
ViolatedConstraints | Это поле содержит сводку по нарушениям ограничений, и значение ему присваивается после операции расчета. Если эта постоянная нарушена, то возможно полю было назначено сочетание одного или нескольких нарушений, перечисленных ниже.
|
Status | Данное поле ограничивается с помощью значений, указанных ниже (их кодированные значения указаны в скобках).
|