Расчет задачи выбора маршрута транспорта (Готово к использованию)

Краткая информация

Решает задачу выбора маршрута транспорта (VRP) для нахождения наилучших маршрутов для парка транспорта.

Контролировать процесс составления маршрута транспорта и управлять автопарком должен диспетчер. Диспетчер решает, каким образом лучше всего распределить группу клиентов между автопарком и спланировать их взаимодействие. Целями расчета такой задачи выбора маршрута транспорта (VRP) является обеспечение высокого уровня обслуживания клиента с учетом временных окон, а также поддержание рабочих расходов для каждого маршрута на самом низком уровне. Ограничения – это факторы, влияющие на прохождение маршрута, с применением доступных ресурсов в определенном интервале времени, с учетом графика рабочих смен водителя, скорости движения и обязательств перед клиентами.

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

Примером может служить доставка товаров в магазины с центрального склада. Для этой цели доступен автопарк из трех машин. Склад работает в определенном временном интервале, с 8:00 до 17:00 — в течение которого все грузовые машины должны вернуться на склад. Грузоподъемность каждого грузовика составляет 6800 кг, что ограничивает объем товара для перевозки за один раз. Каждый магазин нуждается в определенном объеме товара (в кг), который необходимо доставить. Также магазин может принимать товар в определенном временном интервале. Рабочий день водителя составляет 8 часов, куда входит перерыв на обед. Водителю оплачивается время, затраченное на доставку товара и обслуживание магазина. Целью является составление такого маршрута для каждого водителя, чтобы доставка товара осуществлялась в соответствии со всеми условиями обслуживания, а время, необходимое на преодоление водителем отдельного маршрута, было минимальным. На приведенном ниже рисунке показаны три маршрута, полученные в результате решения этого примера задачи выбора маршрута транспорта.

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

Иллюстрация

Результаты решения задачи VRP

Использование

  • Сервис Расчет задачи выбора маршрута транспорта генерирует маршруты для парка транспортных средств, которым необходимо обслужить большое количество заказов, вызовов и т.д. Этот сервис работает в асинхронном режиме и хорошо подходит для решения сложных задач, требующих большего времени для выполнения.

  • Инструменты в наборе инструментов Готовые к использованию - это сервисы геообработки ArcGIS Online, которые используют размещенные в ArcGIS Online данные и возможности анализа.

  • Вы можете включить до 2 000 заказов и 100маршрутов. Также для одного маршрута можно назначить максимум 200 заказов.

  • Вы можете добавить до 250 точечных барьеров. Вы можете добавить любое количество линейных или полигональных барьеров, но линейные барьеры не могут пересекать более 500 объектов улиц, а полигональные – более 2 000 объектов улиц.

  • Независимо от того, включен ли параметр Использовать иерархию(задано True), иерархия всегда используется, когда расстояние по прямой между заказами, складами или заказами и складами больше чем 50 миль (80,46 км).

  • Расстояние по прямой между любыми заказами или станциями не может быть больше, чем 27 миль (43,45 километров), если для параметра режим передвижения travel_mode задано значение Пешком, или если задано значение Пользовательский и используется ограничение Пешком.

  • Если расстояние между входной точкой и ближайшей проезжей улицей больше 12,42 миль (20 км), точка исключается из анализа.

Параметры

ПодписьОписаниеТип данных
Заказы

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

При указании заказов вы можете задать свойства каждого из них, такие как имя или время обслуживания, с помощью атрибутов:

ObjectID

Управляемое системой поле ID.

Name

Имя заказа. Имя должно быть уникальным. Если оставить имя равным null, имя будет автоматически сгенерировано во время решения.

Description

Описательная информация о заказе. Может содержать любую текстовую информацию по заказу и не имеет ограничений на уникальность. В поле Name, к примеру, можно хранить идентификационный номер клиента, а в поле Description – фактическое имя или адрес этого клиента.

ServiceTime

Данное свойство определяет время, которое будет проведено в сетевом положении при посещении его на маршруте; это означает, что оно хранит в себе значение импеданса для сетевого положения. Нулевое значение или значение NULL указывают, что сетевое положение не требует времени обслуживания.

Единица измерения для значения данного поля задается параметром time_units.

TimeWindowStart1

Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени начала.

Временное окно только указывает, когда транспортное средство может прибыть по заказу, но не указывает, когда должно закончиться время обслуживания. Чтобы учесть время обслуживания и уехать до окончания временного окна, вычтите значение ServiceTime из поля TimeWindowEnd1.

Поля временных окон (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 и TimeWindowEnd2) могут содержать только значение времени или даты и времени, они не могут быть целыми числами, представляющими миллисекунды с начала Эпохи. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени. Если поле времени, такое как TimeWindowStart1, имеет значение только времени (например, 8:00), дата считается датой по умолчанию, установленной для анализа. Использование значений даты и времени (например, 7/11/2010 8:00 AM) позволяет задавать временные окна, которые могут охватывать несколько дней.

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

TimeWindowEnd1

Время окончания первого окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени окончания.

TimeWindowStart2

Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие второго временного окна.

Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null.

Если оба временных окна не имеют значения null, то они не могут перекрываться. Кроме того, второе временное окно должно появиться после первого.

TimeWindowEnd2

Время окончания второго временного окна для сетевого положения. Это поле может содержать значение null.

Когда оба TimeWindowStart2 и TimeWindowEnd2 имеют значение null, то второе временное окно отсутствует.

Когда TimeWindowStart2 не null, а TimeWindowEnd2 – null, то имеется второе временное окно со временем начала, но без времени окончания. Это действительно так.

MaxViolationTime1

Временное окно считается нарушенным, если прибытие происходит после окончания временного окна. В данном поле указывается максимальное допустимое время превышения для первого временного окна заказа. Оно может содержать нулевое значение, но не может содержать отрицательные значения. Нулевое значение показывает, что нарушение временного окна в первом временном окне заказа недопустимо; то есть первое временное окно является жестким. С другой стороны, значение NULL показывает, что для допустимого превышения времени предел отсутствует. Ненулевое значение показывает максимальную величину опоздания; например, маршрут может прибыть на точку заказа в течение 30 минут после окончания первого временного окна.

Единица измерения для значения данного поля задается параметром Единицы поля времени

Превышение временного окна может отслеживаться и взвешиваться механизмом расчета. Следовательно, вы можете направить механизм расчета VRP на выполнение одного из следующих действий:

  • Сведите к минимуму общее время нарушения независимо от увеличения транспортных расходов для автопарка.
  • Найдите решение, которое уравновешивает общее превышение времени и расходы на поездку.
  • Игнорируйте общее превышение времени и минимизируйте стоимость проезда для автопарка.

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

MaxViolationTime2

Максимальное допустимое время нарушения для второго временного окна заказа. Данное поле аналогично полю MaxViolationTime1.

InboundArriveTime

Определяет, когда доставляемый товар будет готов на станции.

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

Это поле поможет смоделировать возможные наплывы заказов доставок. Например, работа над заказом требует специальных материалов, которые отсутствуют на станции. Материалы отправляются из другого места и прибудут на склад в 11:00. Чтобы убедиться, что ни один маршрут, который начинается до их доставки, не приписан к заказу, входное время заказа устанавливается на 11:00. Специальные материалы будут доставлены в 11:00, загружены в автомобиль, который затем отправится со станции выполнять приписанные ему заказы.

Примечания:

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

  • Это поле времени может содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 11:00 AM), дата предполагается равной дате, заданной для анализа по умолчанию. Если же поле времени содержит дату в Станциях, Маршрутах, Заказах или Перерывах, дата по умолчанию игнорируется. В этом случае укажите все такие поля с датой и временем (например, 7/11/2015 11:00 AM).

  • Механизм расчета задачи выбора маршрута транспорта использует InboundArriveTime, независимо от значения поля DeliveryQuantities.

  • Если указано также исходящее время выезда, этот момент времени должен наступить после входящего времени прибытия.

OutboundDepartTime

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

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

Это поле поможет смоделировать возможные наплывы заказов доставок. Например, судоходная компания посылает грузовики забрать пакеты с заказами, привезти их на станцию, откуда они будут перенаправлены на другие объекты и отправлены по маршруту к месту назначения. Ежедневно в 15:00 полуприцеп останавливается на станции, чтобы забрать приоритетные пакеты и отвезти их непосредственно на центральную станцию обработки. Чтобы избежать задержки приоритетных пакетов до 15:00 вечера следующего дня, судоходная компания старается, чтобы грузовики забирали приоритетные пакеты из заказов и отвозили их на станцию до 15:00. Этого можно достичь путем установки 15:00 в качестве исходящего времени отъезда.

Примечания:

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

  • Это поле времени может содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 11:00 AM), дата предполагается равной дате, заданной для анализа по умолчанию. Если же поле времени содержит дату в Станциях, Маршрутах, Заказах или Перерывах, дата по умолчанию игнорируется. В этом случае укажите все такие поля с датой и временем (например, 7/11/2015 11:00 AM).

  • Механизм расчета задачи выбора маршрута транспорта использует OutboundDepartTime, независимо от значения поля PickupQuantities.

  • Если указано также входящее время прибытия, этот момент времени должен наступить до исходящего времени отъезда.

DeliveryQuantities

Размер доставки. Размер можно указать в любом измерении, например вес, объем или количество. Вы можете также указать несколько различных измерений; например, вес и объем.

Введите число объектов поставки без указания единиц. Например, если необходимо выполнить доставку объекта массой 300 фунтов по заказу, введите 300. Вам необходимо запомнить, что данное значение приведено в фунтах.

Если при составлении маршрута учитываются несколько измерений, разделяйте их числовые значения пробелами. Например, если вы записываете массу и объем поставки в 2 000 фунтов и 100 кубических футов, введите 2000 100. В этом случае вам необходимо запомнить, что данные значения приведены в фунтах и кубических футах. Вам также необходимо запомнить последовательность введения значений и соответствующие им единицы измерения.

Убедитесь, что Capacities для Routes и DeliveryQuantities и PickupQuantities для Orders указаны таким же образом, а это значит, что значения должны быть в таких же единицах измерения. При использовании нескольких измерений они должны быть перечислены в одной последовательности для всех параметров. Например, если вы указываете вес в фунтах, а затем объем в кубических футах для DeliveryQuantities, то емкость для ваших маршрутов и количество сборов для ваших заказов необходимо указать таким же образом: вес в фунтах, затем объем в кубических футах. При объединении единиц измерения или изменении их последовательности вы получите нежелательные результаты без предварительного уведомления об этом.

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

PickupQuantities

Размер загрузки. Размер можно указать в любом измерении, например вес, объем или количество. Вы можете также указать несколько различных измерений; например, вес и объем. При этом вы не можете использовать отрицательные значения. Данное поле аналогично полю DeliveryQuantities для Orders.

В случае поездки для обмена, заказ может содержать указанное количество как поставки, так и загрузки.

Revenue

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

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

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

SpecialtyNames

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

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

Для иллюстрации того, что такое специальные требования, и как они работают, предположим, что у компании по уходу за газонами и подрезанию деревьев имеется часть заказов, которые требуют применения автоподъемника с люлькой для обрезки высоких деревьев. Компания введет BucketTruck в поле SpecialtyNames для данных заказов, чтобы указать на наличие специального требования. SpecialtyNames для остальных заказов остается null. Аналогичным образом, компания введет BucketTruck в поле SpecialtyNames маршрутов, выполняемых грузовиками со гидравлическими стрелами-манипуляторами. Для остальных маршрутов данное поле останется null. Во время решения механизм расчета VRP назначает заказы без особых требований для любого маршрута, но назначает заказы, для которых требуются автовозы, только маршрутам, в которых они есть.

AssignmentRule

Задает правило присвоения заказа маршруту. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

  • 0 (Исключить) – Заказ будет исключен из последующего решения.
  • 1 (Сохранить маршрут и соответствующий порядок следования) – Механизм расчета должен всегда назначать заказ для предварительно назначенного маршрута в предварительно назначенной относительной последовательности во время операции решения. Если правило назначения нельзя учесть, то это приведет к нарушению заказа. При помощи данной настройки поддерживается только относительная последовательность, а не абсолютная. Для иллюстрации данного утверждения представим два заказа: A и B. Они имеют последовательные значения 2 и 3, соответственно. Если вы установите значения поля AssignmentRule на Сохранить маршрут и соответствующий порядок следования, значения последовательностей заказов A и B могут измениться после расчета, поскольку другие заказы, остановки и посещения станции могут произойти до, между или после A и B. Однако B не может быть обслужен раньше, чем A.
  • 2 (Сохранить маршрут) – механизм расчета должен всегда назначать заказ для предварительно назначенного маршрута во время расчета. Действительная последовательность также должна быть задана, даже несмотря на то, что последовательность может сохраняться или нет. Если заказ не может быть присвоен указанному маршруту, результатом будет нарушение заказа.
  • 3 (Заместить) – механизм расчета пытается сохранить маршрут и предварительно назначенную последовательность для заказа во время расчета. Однако новый маршрут или последовательность заказа может быть назначена, если это поможет сократить общее значение объективной функции. Это значение используется по умолчанию.
  • 4 (Первый якорь) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время расчета. Он присваивает заказу маршрут и делает этот заказ первым, чтобы сократить общую стоимость функции достижения цели.
  • 5 (Последний якорь) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время расчета. Он присваивает заказу маршрут и делает этот заказ последним, чтобы сократить общую стоимость функции достижения цели.

Это поле не может содержать значения null.

CurbApproach

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

  • 0 (С любой стороны) – Транспортное средство может подъезжать и отъезжать от точки заказа в любом направлении, поэтому в месте инцидента разрешен разворот. Данную настройку можно выбрать, если для транспортного средства возможно и желательно развернуться в месте заказа. Такое решение может зависеть от ширины дороги и интенсивности движения или от наличия у заказа места для стоянки, где транспортное средство может выполнить разворот.
  • 1 (Справа по направлению движения) – когда транспортное средство подъезжает или отъезжает от точки заказа, она должна находиться по правую сторону транспортного средства. Разворот запрещен. Эта опция обычно используется для таких транспортных средств, как автобусы, которые должны подъезжать к автобусной остановке так, чтобы она находилась справа.
  • 2 (Слева по направлению движения) – когда транспортное средство подъезжает и отъезжает от точки заказа, бордюр должен находиться с левой стороны транспортного средства. Разворот запрещен. Эта опция обычно используется для таких транспортных средств, как автобусы, которые должны подъезжать к автобусной остановке так, чтобы она находилась слева.
  • 3 (Нет разворота) – при подъезде транспортного средства к точке заказа бордюр может располагаться с любой стороны транспортного средства. Но при отправлении транспортное средство не должно выполнять разворот.

Атрибут CurbApproach был разработан для работы с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Сначала рассмотрим случай, когда точка заказа находится с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. Вы можете выбрать, с какой из двух сторон подъехать к точке заказа, независимо от национального стандарта дорожного движения, т.е. где будет находится точка заказа – справа или слева от транспортного средства. Например, если необходимо подъехать к точке заказа так, чтобы она не была отделена от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании.

RouteName

Имя маршрута, для которого назначен заказ.

Данное поле используется для предварительного назначения заказа определенному маршруту. Оно может содержать значение NULL, показывающие, что заказ предварительно не назначен ни одному маршруту, и механизм расчета определяет наилучшее из возможных назначений маршрутов для заказа. Если оно задано со значением null, то поле Sequence также должно быть равно null.

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

Sequence

Это обозначает последовательность заказа на маршруте.

Данное поле используется для указания относительной последовательности для заказа на маршруте. Данное поле может содержать значение NULL, показывающие, что заказ может быть размещен в любой точке маршрута. Значение null может иметь место только вместе со значением null RouteName.

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

После расчета в поле Sequence будут содержаться значения последовательности заказа для назначенного маршрута. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными. Минимальным возможным выходным значением последовательности для заказа на маршруте является 2, это обусловлено тем, что маршрут всегда начинается со станции.

Bearing

Направление, в котором движется точка. Единицами измерения являются градусы, отсчитывается по часовой стрелке от направления на истинный север. Это поле используется совместно с полем BearingTol.

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

Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка.

BearingTol

Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing находится в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра.

Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое местоположение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра.

NavLatency

Это поле может использоваться в процессе решения, только если в полях Bearing и BearingTol также есть значения; а ввод значения в поле NavLatency не является обязательным, даже когда в полях Bearing и BearingTol присутствуют значения. NavLatency указывает, сколько времени, как ожидается, пройдет с момента отправки информации GPS с движущегося транспортного средства на сервер и до момента получения обработанного маршрута навигационным устройством транспортного средства.

Единицы измерения NavLatency совпадают с единицами вашего атрибута импеданса.

Feature Set
Станции

Задайте одну или несколько станций для данной задачи нахождения маршрута транспорта. Станция – это место, откуда отправляется транспортное средство в начале рабочего дня, и куда оно возвращается в конце рабочего дня. Автотранспорт загружается (для доставки) или разгружается (для самовывоза) на станциях. В некоторых случаях станция может также служить местом пополнения загрузки, в котором транспортное средство может разгружаться или догружаться и продолжать выполнять доставку и сбор. У станции есть значения времени открытия и закрытия, указываемые жестким временным окном. Транспортные средства не могут прибывать на станцию за пределами этого временного окна.

При указании станций вы можете задать свойства каждой из них, такие как имя или время обслуживания, с помощью атрибутов:

ObjectID

Управляемое системой поле ID.

Name

Имя станции. Поля StartDepotName и EndDepotName маршрутов ссылаются на указанные здесь имена. На них также ссылаются обновления маршрута при их использовании.

Имена депо нечувствительны к регистру и должны быть не пустыми и уникальными.

Description

Описательная информация о местоположении склада. Может использоваться любая текстовая информация и нет ограничений на уникальность.

Возможно, необходимо будет записать регион, в котором находится станция, или ее адрес и номер телефона; эту информацию можно ввести здесь, а не в поле Name.

TimeWindowStart1

Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени начала.

Поля временных окон (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 и TimeWindowEnd2) могут содержать только значение времени или даты и времени, они не могут быть целыми числами, представляющими миллисекунды с начала Эпохи. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени. Если поле времени, такое как TimeWindowStart1, имеет значение только времени (например, 8:00), дата считается датой по умолчанию, установленной для анализа. Использование значений даты и времени (например, 7/11/2010 8:00 AM) позволяет задавать временные окна, которые могут охватывать несколько дней.

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

TimeWindowEnd1

Время окончания первого окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени окончания.

TimeWindowStart2

Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие второго временного окна.

Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null.

Если оба временных окна непустые, то они не могут перекрываться. Кроме того, второе временное окно должно появиться после первого.

TimeWindowEnd2

Время окончания второго временного окна для сетевого положения. Это поле может содержать значение null.

Когда оба TimeWindowStart2 и TimeWindowEnd2 имеют значение null, то второе временное окно отсутствует.

Когда TimeWindowStart2 не null, а TimeWindowEnd2 – null, то имеется второе временное окно со временем начала, но без времени окончания. Это действительно так.

CurbApproach

  • 0 (С любой стороны) – транспортное средство может подъезжать и отъезжать от станции в любом направлении, поэтому в месте инцидента разрешен разворот. Эту настройку можно выбрать, если транспортное средство может развернуться на станции и это удобно. Такое решение может зависеть от ширины дороги и интенсивности движения или от наличия у станции места для стоянки, где транспортное средство может выполнить разворот.
  • 1 (Справа по направлению движения) – когда транспортное средство подъезжает или отъезжает от станции, она должна находиться по правую сторону транспортного средства. Разворот запрещен. Эта опция обычно используется для таких транспортных средств, как автобусы, которые должны подъезжать к автобусной остановке так, чтобы она находилась справа.
  • 2 (Слева по направлению движения) – когда транспортное средство подъезжает и отъезжает от станции, бордюр должен находиться с левой стороны транспортного средства. Разворот запрещен. Эта опция обычно используется для таких транспортных средств, как автобусы, которые должны подъезжать к автобусной остановке так, чтобы она находилась слева.
  • 3 (Нет разворота) – при подъезде транспортного средства к станции бордюр может располагаться с любой стороны транспортного средства. Но при отправлении транспортное средство не должно выполнять разворот.

Атрибут CurbApproach был разработан для работы с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Сначала рассмотрим случай, когда станция находится с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. Вы можете выбрать, с какой из двух сторон подъехать к станции, независимо от национального стандарта дорожного движения, т.е. где будет находится точка заказа – справа или слева от транспортного средства. Например, если необходимо подъехать к станции так, чтобы она не была отделена от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании.

Bearing

Направление, в котором движется точка. Единицами измерения являются градусы, отсчитывается по часовой стрелке от направления на истинный север. Это поле используется совместно с полем BearingTol.

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

Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка.

BearingTol

Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing находится в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра.

Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое местоположение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра.

NavLatency

Это поле может использоваться в процессе решения, только если в полях Bearing и BearingTol также есть значения; а ввод значения в поле NavLatency не является обязательным, даже когда в полях Bearing и BearingTol присутствуют значения. NavLatency указывает, сколько времени, как ожидается, пройдет с момента отправки информации GPS с движущегося транспортного средства на сервер и до момента получения обработанного маршрута навигационным устройством транспортного средства.

Единицы измерения NavLatency совпадают с единицами вашего атрибута импеданса.

Feature Set
Маршруты

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

Для задания свойств маршрутов можно использовать следующие атрибуты:

Name

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

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

StartDepotName

Имя начальной станции маршрута. Это поле является внешним ключом для поля Name в классе Depots.

Если значение StartDepotName - null, то маршрут начинается с первого назначенного заказа. Исключение начальной станции полезно в том случае, если начальное положение транспортного средства неизвестно или неважно для вашей задачи. Однако, когда StartDepotName имеет значение null, EndDepotName не может быть null.

Виртуальные начальные станции не допускаются, если заказы или станции находятся в нескольких часовых поясах.

Если маршрут выполняет доставку и StartDepotName имеет значение null, то предполагается, что груз загружен в транспортное средство на виртуальной станции перед началом маршрута. Для маршрута без обновления заказы маршрутов (с ненулевыми значениями DeliveryQuantities в Orders) загружаются на начальной станции или виртуальной станции. Для маршрута с обновлениями, на начальной или виртуальной станции выполняется загрузка только тех заказов маршрутов, которые выполняются до первого обновления.

EndDepotName

Имя конечной станции маршрута. Это поле является внешним ключом для поля Name в классе Depots.

StartDepotServiceTime

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

Единица измерения для значения данного поля задается параметром Единицы поля времени.

Время обслуживания на начальной и конечной станции является фиксированным (определяется значениями полей StartDepotServiceTime и EndDepotServiceTime) и не учитывает фактическую загрузку для маршрута. Например, время, затраченное на загрузку транспортного средства на начальной станции, может зависеть от размера заказов. Время обслуживания на станции может быть присвоено значениям, соответствующим полной загрузке грузовика или средней загрузке грузовика, или вы можете сделать свою собственную оценку времени.

EndDepotServiceTime

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

Единица измерения для значения данного поля задается параметром Единицы поля времени.

Время обслуживания на начальной и конечной станции является фиксированным (определяется значениями полей StartDepotServiceTime и EndDepotServiceTime) и не учитывает фактическую загрузку для маршрута. Например, время, затраченное на загрузку транспортного средства на начальной станции, может зависеть от размера заказов. Время обслуживания на станции может быть присвоено значениям, соответствующим полной загрузке грузовика или средней загрузке грузовика, или вы можете сделать свою собственную оценку времени.

EarliestStartTime

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

Это поле не может содержать значения null и имеет значение по умолчанию только для времени, равное 8:00. Значение по умолчанию интерпретируется как 8:00 утра на дату по умолчанию, установленную для анализа.

При решении задачи, которая охватывает несколько часовых поясов, часовой пояс EarliestStartTime соответствует часовому поясу начальной станции.

LatestStartTime

Наиболее позднее допустимое время начала маршрута.

Это поле не может содержать значения NULL и имеет значение по умолчанию только времени, равное 10:00 AM. Значение по умолчанию интерпретируется как 10:00 утра в наборе дат по умолчанию для анализа.

При решении задачи, которая охватывает несколько часовых поясов, часовой пояс LatestStartTime соответствует часовому поясу начальной станции.

ArriveDepartDelay

В этом поле хранится величина времени в пути, необходимая для ускорения транспортного средства до обычной скорости передвижения, замедления его до остановки и перемещения из сети и в сеть (например, на парковку и с парковки). Включение значения ArriveDepartDelay позволяет механизму расчета VRP не отправлять множество маршрутов для обслуживания физически совпадающих заказов.

Стоимость для этого свойства выводится между визитами по несовпадающим заказам, станциям и обновлениям маршрута. Например, если маршрут начинается со станции и посещает первый заказ, ко времени пути добавляется общая задержка прибытия/отправления. То же касается пути от первого заказа ко второму. Если второй и третий заказы совпадают, значение ArriveDepartDelay между ними не добавляется, поскольку транспортному средству не нужно перемещаться. Если маршрут следует к пункту обновления загрузки, значение снова добавляется ко времени в пути.

Хотя транспортному средству необходимо замедляться и останавливаться на перерыв, а после него ускоряться, механизм расчета VRP не может добавлять значение ArriveDepartDelay для перерывов. Это означает, что если маршрут оставляет заказ, останавливается на перерыв и переходит к следующему заказу, задержка прибытия/отправления добавляется только один раз, а не дважды.

Например, предположим, что имеются пять совпадающих заказов в одном многоэтажном доме, которые обслуживаются тремя разными маршрутами. Это значит, что добавляются три задержки прибытия/отправления; то есть трем водителям необходимо раздельно найти места для парковки и войти в одно и то же здание. Однако если заказы могут быть обслужены одним маршрутом, парковаться и входить в здание необходимо только одному водителю – и возникает только одна задержка прибытия/отправления. Поскольку механизм расчета задачи выбора маршрута транспорта пытается минимизировать затраты, он попробует ограничить задержки прибытия/отправления и поэтому определит вариант с одним маршрутом. (Обратите внимание, что при наличии других ограничений – специальных требований, временных окон или емкостей – могут понадобиться несколько маршрутов.)

Единица измерения для значения данного поля задается параметром time_units.

Capacities

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

Введите вместимости без указания единиц. Например, если ваш автомобиль может перевозить максимум 40 000 фунтов, введите 40000. Необходимо помнить, что данное значение задано в фунтах.

Если при составлении маршрута учитываются несколько измерений, разделяйте их числовые значения пробелами. Например, если вы записываете массу и объем поставки в 2 000 фунтов и 100 кубических футов, введите 2000 100. В этом случае вам необходимо запомнить, что данные значения приведены в фунтах и кубических футах. Вам также необходимо запомнить последовательность введения значений и соответствующие им единицы измерения.

Запомнить единицы измерения и их последовательность важно по нескольким причинам: во-первых, для возможности интерпретации информации в будущем, во-вторых для правильного ввода значений полей DeliveryQuantities и PickupQuantities для заказов. Имейте в виду, что механизм расчёта VRP одновременно ссылается на Capacities, DeliveryQuantities и PickupQuantities, чтобы убедиться в том, что маршрут не станет перегруженным. Единицы измерения нельзя вводить в поле, и инструмент VRP не может преобразовывать единицы. Вы должны ввести значения для трех полей, используя одни и те же единицы измерения и одну и ту же последовательность единиц измерения, чтобы обеспечить правильную интерпретацию значений. Если вы комбинируете единицы измерения или изменяете последовательность в любом из трех полей, возникают нежелательные результаты без каких-либо предупреждающих сообщений. Рекомендуется заранее определить стандарт ввода единиц измерения и последовательность их ввода и постоянно использовать ее при вводе значений для этих трех полей.

Пустая строка или значение NULL эквивалентны бесконечности. Значение емкости не может быть отрицательным.

Если в поле Capacities содержится недостаточное число значений относительно полей DeliveryQuantities или PickupQuantities в заказах, оставшиеся значения интерпретируются как равные бесконечности.

Механизм расчета VRP только выполняет простой двоичный тест для определения превышения емкостей. Если значение емкости маршрута выше или равно общей вместимости, то механизм расчета VRP предположит, что груз помещается в транспортное средство. Это может быть неверно, в зависимости от фактической формы груза и транспортного средства. Например, механизм расчета VRP позволяет вам загрузить сферу объемом 1 000-кубических футов в грузовик вместимостью 1 000 кубических футов и шириной 8 футов. В действительности, сфера имеет диаметр 12,6 фута, и ее нельзя поместить в грузовик шириной 8 футов.

FixedCost

Фиксированное денежная стоимость, которая принимается только в том случае, если маршрут используется в решении (то есть, что для него назначены некоторые заказы). Это поле может содержать значения NULL; значение NULL соответствует нулевой фиксированной стоимости. Эта стоимость является частью общей стоимости эксплуатации маршрута.

CostPerUnitTime

Примененная денежная стоимость – на единицу времени работы – для общей продолжительности маршрута, включая значения времени в пути, а также времени обслуживания и ожидания на заказах, станциях и в перерывах. Это поле не может содержать значения null и имеет значение по умолчанию, равное 1.0.

Единица измерения для значения данного поля задается параметром time_units.

CostPerUnitDistance

Примененная денежная стоимость – на единицу пройденного расстояния – для длины маршрута (общее пройденное расстояние). Это поле может содержать значения null; значение null указывает на нулевую стоимость.

Единица измерения для значения данного поля задается параметром distance_units.

OvertimeStartTime

Продолжительность регулярного времени работы перед началом вычисления сверхурочных. Это поле может содержать значения null; значение null указывает, что сверхурочная работа не применяется.

Единица измерения для значения данного поля задается параметром time_units.

Например, если водителю выплачиваются сверхурочные, если общая длительность маршрута превышает восемь часов, значение OvertimeStartTime указывается равным 480 (8 часов * 60 минут/час), при этом в качестве единиц времени задано значение минуты.

CostPerUnitOvertime

Денежная стоимость для единицы времени сверхурочной работы. Это поле может содержать значения null; значение null соответствует равенству значений CostPerUnitOvertime и CostPerUnitTime.

MaxOrderCount

Максимальное допустимое число заказов на маршруте. Это поле не может содержать значения NULL и имеет значение по умолчанию, равное 30.

MaxTotalTime

Максимально допустимая продолжительность маршрута. Продолжительность (длительность) маршрута включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Это поле может содержать значения null; значение null указывает на отсутствие ограничений на продолжительность маршрута.

Единица измерения для значения данного поля задается параметром time_units.

MaxTotalTravelTime

Максимально допустимое время в пути для маршрута. Время в пути включает только время, проведенное за рулем, и не включает время обслуживания или ожидания.

Это поле может содержать значения null; значение null соответствует отсутствию ограничений по максимально допустимому времени передвижения по маршруту. Значение данного поля не может быть больше значения поля MaxTotalTime.

Единица измерения для значения данного поля задается параметром time_units.

MaxTotalDistance

Максимально допустимое расстояние для маршрута.

Единица измерения для значения данного поля задается параметром distance_units.

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

SpecialtyNames

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

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

Для иллюстрации того, что такое специальные требования, и как они работают, предположим, что у компании по уходу за газонами и подрезанию деревьев имеется часть заказов, которые требуют применения автоподъемника с люлькой для обрезки высоких деревьев. Компания введет BucketTruck в поле SpecialtyNames для данных заказов, чтобы указать на наличие специального требования. SpecialtyNames для остальных заказов остается null. Аналогичным образом, компания введет BucketTruck в поле SpecialtyNames маршрутов, выполняемых грузовиками со гидравлическими стрелами-манипуляторами. Для остальных маршрутов данное поле останется null. Во время решения механизм расчета VRP назначает заказы без особых требований для любого маршрута, но назначает заказы, для которых требуются автовозы, только маршрутам, в которых они есть.

AssignmentRule

Задает правило присвоения заказа маршруту. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

Это поле не может содержать значения null.

  • 1 (Include) – маршрут включен в решение. Это значение используется по умолчанию.
  • 2 (Exclude) – маршрут исключен из решения.

Record Set
Перерывы

Это время отдыха или перерывы для маршрутов в заданной задаче нахождения маршрута транспорта. Перерыв связан ровно с одним маршрутом и может быть взят после выполнения заказа, на пути к заказу или перед обслуживанием заказа. У него есть время начала и длительность, которые могут оплачиваться или не оплачиваться водителю. Имеется три способа установки начала перерыва: временное окно, максимальное время в пути или максимальное время работы.

Перерывы временного окна не допускаются, если заказы или станции находятся в нескольких часовых поясах, и время не указано в формате UTC.

При указании перерывов вы можете задать свойства каждого из них, такие как имя или время обслуживания, с помощью атрибутов:

ObjectID

Управляемое системой поле ID.

RouteName

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

Данное поле является внешним ключом для поля Name в маршрутах, поэтому оно не может содержать значение null.

Precedence

Значения приоритета определяют последовательность перерывов для заданного маршрута. Перерывы со значением приоритета 1 происходят перед перерывами со значением 2 и так далее.

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

ServiceTime

Продолжительность перерыва. Это поле не может содержать значения NULL. Значение по умолчанию – 60.

Единица измерения для значения данного поля задается параметром time_units.

TimeWindowStart

Время начала временного окна перерыва. Необходимо указать как время начала, так и время окончания.

Если данное поле содержит значение, то значения полей MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть пустыми, и все остальные перерывы в анализе должны иметь значения null для MaxTravelTimeBetweenBreaks и MaxCumulWorkTime.

Ошибка возникнет во время решения, если на маршруте есть несколько перерывов с перекрывающимися временными окнами.

Поля временных окон в перерывах могут содержать значение только времени или даты и времени в поле даты и не могут быть целыми числами, представляющими миллисекунды с начала эры. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени. Если поле времени, например, TimeWindowStart, имеет значение только времени (например, 12:00 пополудни), то используется дата, которая была задана параметром Дата по умолчанию (default_date в Python). С помощью значений даты и времени (например, 7/11/2012 , 12:00 p.m.) можно задавать временные окна, которые могут охватывать два и более дней. Это удобно, если перерыв следует сделать в районе полуночи.

TimeWindowEnd

Время окончания временного окна перерыва. Необходимо указать как время начала, так и время окончания.

Если данное поле содержит значение, то значения полей MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть null, и все остальные перерывы в анализе должны иметь значения null для MaxTravelTimeBetweenBreaks и MaxCumulWorkTime.

MaxViolationTime

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

Нулевое значение указывает, что временное окно не может быть нарушено; то есть, это окно является жестким. Ненулевое значение указывает максимальное время опоздания. Например, перерыв может начаться через 30 минут после окончания выделенного ему временного окна, но штраф за опоздание рассчитывается в соответствии с параметром Значимость превышения временного окна.

Данное свойство может содержать пустые (null) значения. Значение null со значениями TimeWindowStart и TimeWindowEnd указывает на отсутствие ограничения допустимого времени нарушения. Если MaxTravelTimeBetweenBreaks или MaxCumulWorkTime имеют значение, MaxViolationTime должно быть null.

Единица измерения для значения данного поля задается параметром time_units.

MaxTravelTimeBetweenBreaks

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

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

Это поле предназначено для ограничения длительности вождения транспортного средства человеком, прежде чем потребуется перерыв. Например, если единица времени для анализа установлена на минуты и MaxTravelTimeBetweenBreaks имеет значение 120, водитель получит перерыв после двух часов вождения. Чтобы назначить второй перерыв еще через два часа вождения, для параметра MaxTravelTimeBetweenBreaks второго перерыва нужно указать значение 120.

Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd,MaxViolationTime и MaxCumulWorkTime должны быть null для успешного выполнения анализа.

Единица измерения для значения данного поля задается параметром time_units.

MaxCumulWorkTime

Максимальное время работы, которое может быть суммировано до начала перерыва. Время работы всегда накапливается с начала маршрута.

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

Это поле ограничения продолжительности работы человека, прежде чем потребуется перерыв. Например, если единица времени для анализа установлена на минуты, MaxCumulWorkTime имеет значение 120 и ServiceTime имеет значение 15, водитель получит 15-минутный перерыв после двух часов работы.

Продолжая рассматривать последний пример, предположим, что второй перерыв должен начаться через три часа работы. Для указания данного перерыва необходимо ввести значение 315 (пять часов и 15 минут) в значение MaxCumulWorkTime второго перерыва. Данное значение включает в себя MaxCumulWorkTime и ServiceTime предыдущего перерыва, а также три дополнительных часа работы до второго перерыва. Чтобы избежать преждевременных перерывов на максимальное рабочее время, помните, что они накапливают рабочее время с начала маршрута и что рабочее время включает время обслуживания на ранее посещенных станциях, заказы и перерывы.

Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd,MaxViolationTime и MaxTravelTimeBetweenBreaks должны быть null для успешного выполнения анализа.

Единица измерения для значения данного поля задается параметром time_units.

IsPaid

Булево значение, указывающее, будет ли перерыв оплачиваемым или нет. Установка значения данного поля равным 1 означает, что время, затраченное на перерыв, включается в расчет стоимости маршрута и определение сверхурочных. Значение 0 указывает на обратное. Значение по умолчанию равно 1.

Sequence

Означает последовательность перерывов на маршруте. Это поле может содержать значения null, из-за чего механизм решения назначает последовательность прерывания. Если значения последовательности заданы, они должны быть положительными и уникальными для каждого маршрута (распределенного среди посещений станций, заказов и перерывов), но не обязаны начинаться с 1 или быть последовательными.

Record Set
Единицы времени

Единицы измерения времени для значений времени в анализе. Многие объекты и записи в анализе VRP содержат поля для записи значений времени, например ServiceTime для заказов и CostPerUnitTime для маршрутов. Для сокращения требований по вводу данных эти поля не должны включать в себя единицы. Все значения расстояния должны вводиться в одних и тех же единицах, и данный параметр используется для указания единиц этих значений.

Обратите внимание, что выходные поля на основании времени используют единицы, указанные данным параметром.

  • СекундыЕдиница времени – секунды.
  • МинутыЕдиница времени – минуты.
  • ЧасыЕдиница времени – часы.
  • ДниЕдиница времени – дни.
String
Единицы расстояния

Единицы измерения расстояния для всех полей на основании расстояния в анализе. Многие объекты и записи в анализе VRP содержат поля для записи значений расстояния, например, MaxTotalDistance и CostPerUnitDistance для маршрутов. Для сокращения требований по вводу данных эти поля не должны включать в себя единицы. Все значения расстояния должны вводиться в одних и тех же единицах, и данный параметр используется для указания единиц этих значений.

Обратите внимание, что выходные поля на основании расстояния используют единицы, определяемые данным параметром.

  • МетрыЕдиницы расстояния – метры.
  • КилометрыЕдиницы расстояния – километры.
  • ФутыЕдиницы расстояния – футы.
  • ЯрдыЕдиницы расстояния – ярды.
  • МилиЕдиницы расстояния – мили.
  • Морские милиЕдиницы расстояния – морские мили.
String
Регион анализа
(Дополнительный)

Регион, в котором будет выполняться анализ. Если значение этого параметра не указано, инструмент автоматически вычислит имя региона на основе местоположения входных точек. Задание имени региона необходимо только в случае, если для входных данных не подходит автоматическое определение названия региона.

Чтобы задать регион используйте одно из следующих значений:

  • EuropeРегион анализа — Европа.
  • JapanРегион анализа — Япония.
  • KoreaРегион анализа — Корея.
  • Ближний Восток и АфрикаРегион анализа — Ближний Восток и Африка.
  • Северная АмерикаРегион анализа — Северная Америка.
  • Южная АмерикаРегион анализа — Южная Америка.
  • Южная АзияРегион анализа — Южная Азия.
  • ThailandРегион анализа — Таиланд.
Прежние версии:

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

  • Greece изменится на Europe
  • India изменится на SouthAsia
  • Oceania изменится на SouthAsia
  • SouthEastAsia изменится на SouthAsia
  • Taiwan изменится на SouthAsia

String
Дата по умолчанию
(Дополнительный)

Дата по умолчанию для значений полей времени, в которых указывается время в течение дня без указания даты. Вы можете найти эти поля времени в различных входных параметрах, таких как атрибуты ServiceTime в параметрах заказов и перерывов.

Date
Развороты в соединениях
(Дополнительный)

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

Значение, указанное вами для данного параметра, игнорируется, за исключением случаев, когда Режим передвижения задан как Пользовательский, который является значением по умолчанию.

  • Разрешить разворотыРазвороты разрешены везде. При разрешении U-образных разворотов транспортное средство может развернуться на любом соединении и продолжить движение по той же улице в обратную сторону. Это значение используется по умолчанию.
  • Запретить разворотыРазвороты запрещены во всех соединениях: псевдосоединениях, пересечениях, в тупиках. Однако имейте в виду, что развороты могут быть разрешены, даже при выборе этого параметра. Чтобы запретить развороты в точках инцидентов и на пунктах обслуживания, запретите развороты в поле CurbApproach.
  • Разрешить только в тупикахРазвороты запрещены во всех соединениях, кроме тех, у которых имеется только один присоединенный объект улицы (тупик).
  • Разрешить только на пересечениях и в тупикахРазвороты запрещены в псевдосоединениях, где соединяются только две улицы, но разрешены на перекрестках и в тупиках. Это не позволяет выполнить разворот посередине одной улицы, которая состоит из двух объектов.
String
Коэффициент временного окна
(Дополнительный)

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

  • ВысокоеБольшее значение придается своевременному прибытию на остановки, а не минимизации времени в пути. Например, этот параметр используют организации, осуществляющие срочные поставки или занимающиеся обслуживанием клиентов.
  • СреднееВажность сбалансирована между минимизацией времени в пути и прибытием в пределах временных окон. Это значение используется по умолчанию.
  • НизкоеБольшее значение придается минимизации времени в пути, а не своевременному прибытию на остановки. Этот параметр также можно использовать при накоплении отставания в обработке заказов. Для обработки как можно большего количества заказов в день и сокращения отставания можно выбрать данный параметр несмотря на то, что клиенты могут испытывать неудобства из-за позднего прибытия транспортных средств.
String
Пространственно сгруппированные маршруты
(Дополнительный)

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

  • CLUSTER (True) – для всех маршрутов основные динамические точки создаются автоматически, а заказы, назначенные для отдельного маршрута, делятся на кластеры. Деление заказов на кластеры приводит к сохранению маршрутов в небольших областях и сокращает частоту пересечения линий различных маршрутов; при этом деление на кластеры также приводит к увеличению общего времени в пути.
  • NO_CLUSTER (False) – основные динамические точки не создаются. Выберите данный параметр, если указаны зоны маршрута.

Boolean
Зоны маршрутов
(Дополнительный)

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

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

При указании зон маршрута вы должны установить свойства для каждой, например связанный с ней маршрут, используя следующие атрибуты:

ObjectID

Управляемое системой поле ID.

RouteName

Название маршрута, для которого применяется данная зона. Зона маршрута может иметь не более одного связанного маршрута. Это поле не может содержать значения null и является внешним ключом для поля Name в маршрутах.

IsHardZone

Двоичное значение, определяющее гибкую или жесткую зону маршрута. Значение Да (True) определяет жесткую зону; это означает, что заказ, выходящий за пределы полигона зоны маршрута, не может быть назначен этому маршруту. По умолчанию используется значение 1 (True). Значение Нет (False) (0) определяет, что такие заказы все еще могут быть назначены, но стоимость обслуживания заказа взвешена на основе функции евклидова расстояния от зоны маршрута. По сути, это означает, что по мере увеличения расстояния по прямой от гибкой зоны до заказа вероятность того, что заказ будет назначен маршруту, уменьшается.

Feature Set
Обновления маршрутов
(Дополнительный)

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

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

Вот некоторые правила и опции, которые следует иметь в виду:

  • Пункт догрузки/выгрузки (место пополнения загрузки) может отличаться от начальной и конечной станций.
  • У каждого маршрута может быть одно или несколько заранее определенных мест пополнения.
  • Место пополнения загрузки может использоваться на одном маршруте несколько раз.
  • В случаях наличия нескольких потенциальных мест пополнения загрузки для маршрута механизм расчета определяет ближайшее доступное из них.

При указании мест пополнения на маршруте вы должны установить свойства для каждого, например, название станции, где может произойти пополнение на маршруте, используя следующие атрибуты:

ObjectID

Управляемое системой поле ID.

DepotName

Имя станции, в которой происходит такое обновление. Это поле не может содержать значение null и является внешним ключом для поля Name в станциях.

RouteName

Название маршрута, к которому применяется данное обновление. Это поле не может содержать значение null и является внешним ключом для поля Name в маршрутах.

ServiceTime

Время обслуживания для обновления. Это поле может содержать пустое значение; пустое значение соответствует нулевому времени обслуживания.

Единица измерения для значения данного поля задается параметром time_units.

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

Record Set
Пары заказов
(Дополнительный)

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

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

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

При указании пар заказов вы должны установить свойства для каждого, например, имена двух заказов, используя следующие атрибуты:

ObjectID

Управляемое системой поле ID.

FirstOrderName

Имя первого заказа в паре. Это поле является внешним ключом для поля Name в заказах.

SecondOrderName

Имя второго заказа в паре. Это поле является внешним ключом для поля Name в заказах.

Первый заказ в паре должен быть заказом сбора, это означает, что значение поля DeliveryQuantities для него null. Второй заказ в паре должен быть заказом доставки, это означает, что значение поля PickupQuantities для него null. Количество, которое собирается в первом заказе, должно соответствовать количеству, поставляемому во втором заказе. В отдельном случае оба заказа могут иметь нулевые количества для случаев, когда емкости не используются.

Заказы не загружаются и не разгружаются на станциях.

MaxTransitTime

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

Единицы измерения для значения данного поля задается свойством timeUnits объекта анализа.

Механизмом расчета может отслеживаться и учитываться лишнее время в пути (измеряемое с учетом непосредственного времени в пути между парами заказов). По этой причине вы можете указать механизму расчета VRP следующие подходы:

  • Минимизировать общее избыточное время нахождения в пути, вне зависимости от увеличения стоимости проезда для автопарка.
  • Найдите решение, которое уравновешивает общее превышение времени и расходы на поездку.
  • Игнорировать общее избыточное время нахождения в пути; вместо этого минимизировать стоимость проезда для автопарка.

Назначая уровень важности параметру excess_transit_factor, вы фактически выбираете один из этих трех подходов. Независимо от уровня значимости, механизм расчета всегда будет возвращать ошибку при превышении значения свойства MaxTransitTime.

Record Set
Избыточное время транзита
(Дополнительный)

Задает уровни важности сокращения избыточного времени в пути для пар заказов. Избыточное время в пути – это затрачиваемое сверх необходимого время для перемещения от одного заказа к другому. Избыточное время в пути может быть вызвано перерывами в работе водителя или движением к промежуточным заказам и станциям.

  • ВысокоеБольшее значение придается уменьшению избыточного времени в пути между парными заказами за счет увеличения общей стоимости перемещения. Данная опция обычно используется при необходимости перевозки людей между парами заказов, и вы хотите сократить их время в пути. Это характеристика сервисов такси
  • СреднееВажность сбалансирована между сокращением избыточного времени в пути и снижением общей стоимости решения. Это значение используется по умолчанию.
  • НизкоеБольшее значение придается минимизации общей стоимости решения, независимо от избыточного времени в пути. Этот параметр обычно используется курьерской службой. Поскольку курьерская служба перевозит грузы, а не людей, ей не приходится заботиться о времени в пути. Эта опция позволяет курьерской службе обрабатывать парные заказы в должной очередности с минимальными общими затратами.
String
Точечные барьеры
(Дополнительный)

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

Инструмент может накладывать до 250 ограничений, точек, добавленных в качестве барьеров.

При указании точечных барьеров вы можете задать свойства каждого из них, такие как имя или тип барьера, с помощью атрибутов:

Name

Имя барьера.

BarrierType

Указывает, ограничивает ли точечный барьер перемещение полностью или добавляет время или расстояние при его пересечении. Значение этого атрибута указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

  • 0 (Restriction) – запрещает прохождение через барьер. Барьер, действующий как запрещающий, рассматривается как ограничительный точечный барьер.

  • 2 (Added Cost) – прохождение через барьер увеличивает время в пути или расстояние на значение, указанное в полях Additional_Time, Additional_Distance или AdditionalCost. Этот тип барьера называется барьером дополнительной стоимости.

Additional_Time

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

Значение этого поля должно быть больше или равно нулю, а его единицы измерения должны соответствовать заданным в параметре Единицы измерения.

Additional_Distance

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

Значение этого поля должно быть больше или равно нулю, а его единицы измерения должны соответствовать заданным в параметре Единицы измерения.

AdditionalCost

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

FullEdge

Указывает, как ограничительные точечные барьеры применяются к элементам ребер во время анализа. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

  • (0) False – разрешает путь по ребру до барьера, но не через него. Это значение используется по умолчанию.
  • 1 (True) – Запрещает путь повсюду в связанном ребре.

CurbApproach

Указывает направление движения, на которое влияет барьер. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

  • 0 (Любая сторона транспортного средства) – Барьер влияет на перемещение по ребру в обоих направлениях.
  • 1 (Правая сторона транспортного средства) – Распространяется только на те транспортные средства, для которых барьер находится с правой стороны по ходу движения. Барьер не влияет на автомобили, которые передвигаются по этому же ребру, но при этом барьер находится слева от них.
  • 2 (Левая сторона транспортного средства) – Распространяется только на те транспортные средства, для которых барьер находится с левой стороны по ходу движения. Барьер не распространяется на автомобили, которые передвигаются по этому же ребру, но при этом барьер находится справа от них.

Так как соединения являются точками и не имеют сторон, барьеры на соединениях влияют на все транспортные средства независимо от стороны подъезда.

Атрибут CurbApproach работает с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Сначала рассмотрим случай, когда пункт обслуживания располагается с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. От национального стандарта дорожного движения будет зависеть ваше решение, с какой из двух сторон подъехать к пункту обслуживания, т.е. должен ли он находиться с правой или левой стороны транспортного средства. Например, если необходимо подъехать к пункту обслуживания так, чтобы он не был отделен от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании.

Bearing

Направление, в котором движется точка. Единицами измерения являются градусы, отсчитывается по часовой стрелке от направления на истинный север. Это поле используется совместно с полем BearingTol.

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

Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка.

BearingTol

Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing находится в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра.

Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое местоположение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра.

NavLatency

Это поле может использоваться в процессе решения, только если в полях Bearing и BearingTol также есть значения; а ввод значения в поле NavLatency не является обязательным, даже когда в полях Bearing и BearingTol присутствуют значения. NavLatency указывает, сколько времени, как ожидается, пройдет с момента отправки информации GPS с движущегося транспортного средства на сервер и до момента получения обработанного маршрута навигационным устройством транспортного средства.

Единицы измерения NavLatency совпадают с единицами вашего атрибута импеданса.

Feature Set
Линейные барьеры
(Дополнительный)

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

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

При указании линейных барьеров вы можете задать свойства имени и типа барьера для каждого из них с помощью атрибутов:

Name

Имя барьера.

Feature Set
Полигональные барьеры
(Дополнительный)

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

Сервис накладывает ограничение на количество улиц, которые вы можете ограничить с помощью параметра Полигональные барьеры. Хотя количество полигонов, которые вы можете указать в качестве полигональных барьеров, не ограничено, общее количество улиц, пересекаемых всеми полигонами, не может превышать 2 000.

При указании точечных барьеров вы можете задать свойства каждого из них, такие как имя или тип барьера, с помощью атрибутов:

Name

Имя барьера.

BarrierType

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

  • 0 (Restriction) – запрещает прохождение через любую часть барьера. Этот барьер называется запрещающим полигональным барьером, поскольку он запрещает перемещение по пересекаемым улицам. Одним из применений этого типа барьеров является моделирование наводнений, покрывающих улицы, и перемещение по ним становится невозможным.

  • 1 (Scaled Cost) – масштабирует стоимость (например, время в пути или расстояние), необходимую для проезда по лежащим ниже улицам, на коэффициент, указанный с помощью поля ScaledTimeFactor или ScaledDistanceFactor. Если улицы частично покрыты барьером, время в пути или расстояние будет соответственно разделены, а затем масштабированы. Например, коэффициент 0,25 означает, что ожидаемое время перемещения по соответствующим улицам в четыре раза меньше обычного. Коэффициент 3,0 означает, что ожидаемое время перемещения будет в три раза дольше обычного. Этот тип барьера называется полигональным барьером масштабируемой стоимости. Например, он может использоваться для моделирования погодных условий, из-за которых скорость перемещения в указанных регионах снижается.

ScaledTimeFactor

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

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

ScaledDistanceFactor

Это коэффициент, на который умножается длина пути по улицам, пересеченным барьером. Значение поля должно быть больше нуля.

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

ScaledCostFactor

Это коэффициент, на который умножается стоимость пути по улицам, пересеченным барьером. Значение поля должно быть больше нуля.

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

Feature Set
Использовать иерархию
(Дополнительный)

Укажите, должна ли при нахождении наилучшего маршрута использоваться иерархия.

  • Отмечено (True) – использовать иерархию при поиске маршрутов. Когда используется иерархия, инструмент предпочитает улицы более высокого порядка, такие как скоростные автострады, улицам более низкого порядка, таким как местные дороги, и может использоваться для моделирования предпочтения водителей передвигаться по автострадам, а не местным дорогам, даже если это удлиняет путь. Особенно это относится к тем случаям, когда нужно определить маршруты к удаленным местам, поскольку водители предпочитают использовать в дальних поездках скоростные автострады без светофоров, перекрестков и поворотов. Использование иерархии ускоряет вычисления, особенно в случае междугородних поездок, поскольку инструмент выбирает лучший маршрут из сравнительно небольшого поднабора улиц.
  • Не отмечено (False) – не использовать иерархию при поиске маршрутов. Если иерархия не используется, инструмент перебирает при определении маршрута все улицы и не отдает предпочтение улицам более высокого порядка. Этот вариант обычно используется при нахождении коротких маршрутов в пределах города.

Инструмент автоматически возвращается к использованию иерархии, если расстояние по прямой между заказами, станциями или заказами и станциями превышает 50 миль, даже если этот параметр не отмечен (False).

Этот параметр игнорируется, если только для Режима передвижения не выбрано Пользовательский, которое является значением по умолчанию.

Boolean
Ограничения

Ограничения, которые должны учитываться инструментом при нахождении наилучшего маршрута.

Ограничение представляет собой предпочтение или требование во время поездки. В большинстве случаев ограничения запрещают использование тех или иных дорог. Например, использование ограничения Избегать платных дорог приведет к тому, что платные дороги будут использоваться, только если это абсолютно необходимо для подъезда к инциденту или пункту обслуживания. Height Restriction позволяет прокладывать маршрут в обход всех объектов с пролетами, меньшими, чем высота транспортного средства. Если транспортное средство перевозит коррозионные вещества, применение ограничения Any Hazmat Prohibited (Вредные вещества запрещены) предотвратит перевозку таких материалов по тем дорогам, по которым это запрещено.

Примечание:

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

Примечание:

Некоторые ограничения поддерживаются только в определенных странах; их доступность по регионам указана в списке ниже. Кроме доступности ограничений по регионам, можно проверить его доступность в определенной стране по таблице в разделе Список стран Покрытия сетевого анализа. Если для страны указано значениеYes в столбце Атрибуты логистики, то будут проверены ограничения, которые есть для всего региона, в котором находится страна. Если вы задаете имена ограничений, которые недоступны в стране, где находятся инциденты, сервис игнорирует их. Сервис также игнорирует ограничения, где значение параметра Использование ограничений находится в пределах от 0 до 1 (см. параметр Значение параметра атрибутов). Он запрещает все ограничения, чье значение параметра Использование ограничения больше 0.

Сервис поддерживает следующие ограничения:

  • Вредные вещества запрещеныВ маршрут не включаются дороги, по которым запрещена перевозка любых видов опасных веществ.Доступность: Выберите страны в Северной Америке и Европе
  • Избегать дорог для автомобилей с пассажирамиВ маршрут не будут включаться дороги, предназначенные исключительно для пассажирских перевозок (автобусы и т.д.).Доступность: Все страны
  • Избегать скоростных полосВ маршрут не будут включаться дороги, предназначенные для скоростного передвижения.Доступность: Все страны
  • Избегать паромовВ маршруте не будут использоваться паромные переправы.Доступность: Все страны
  • Избегать воротВ маршрут не будут включаться дороги, на которых имеются ворота для въезда по пропуску или охраняемые въезды.Доступность: Все страны
  • Избегать дорог с ограниченным доступомВ маршрут не будут включаться дороги с ограниченным доступом.Доступность: Все страны
  • Избегать частных дорогВ маршрут не будут включаться частные дороги.Доступность: Все страны
  • Избегать дорог, неподходящих для пешеходовВ маршрут не будут включаться дороги, не предназначенные для движения по ним пешеходов.Доступность: Все страны
  • Избегать лестницыВ маршрут для пешехода не будут включаться все лестницы.Доступность: Все страны
  • Избегать платных дорогВ маршруте для легковых автомобилей не будут использоваться платные дороги.Доступность: Все страны
  • Избегать платных дорог для грузовиковВ маршруте для легковых автомобилей не будут использоваться платные дороги.Доступность: Все страны
  • Избегать дорог с ограничениями для грузовиковВ результатах будут отсутствовать соответствующие дороги если только на них не находится точка доставки.Доступность: Все страны
  • Избегать дорог без покрытияВ маршрут не будут включаться дороги без покрытия (например, грунтовые, с гравийным покрытием и т.д.).Доступность: Все страны
  • Ограничение по числу осейВ маршрут не будут включаться дороги, на которых запрещены грузовики с указанным числом осей. Число осей задается параметром Number of Axles.Доступность: Выберите страны в Северной Америке и Европе
  • АвтобусыВ маршрут не будут включаться дороги, по которым запрещено перемещение на автобусах. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • ТаксиВ маршрут не будут включаться дороги, по которым запрещено перемещение на такси. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • ГрузовикиВ маршрут не будут включаться дороги, по которым запрещено перемещение на грузовиках. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • АвтомобилиВ маршрут не будут включаться дороги, по которым запрещено перемещение на автомобилях. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • Машины служб быстрого реагированияВ маршрут не будут включаться дороги, по которым запрещено перемещение аварийно-спасательных автомобилей. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • Ограничение высотыВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей больше разрешенной высоты. Высота транспортного средства задается параметром Vehicle Height (в метрах).Доступность: Выберите страны в Северной Америке и Европе
  • Ограничение по ширине заноса задней осиВ маршрут не будут включаться дороги, по которым запрещено движение всех грузовиков с шириной заноса задней оси больше разрешенной. Это значение задается параметром Vehicle Kingpin to Rear Axle Length (метры).Доступность: Выберите страны в Северной Америке и Европе
  • Ограничение длиныВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей больше разрешенной длины. Длина транспортного средства задается параметром Vehicle Length (в метрах).Доступность: Выберите страны в Северной Америке и Европе
  • Предпочтительный для пешеходовВ маршрут будут предпочтительно включаться дороги, подходящие для передвижения пешеходов.Доступность: Выберите страны в Северной Америке и Европе
  • На мотоциклеВ маршрут не будут включаться дороги, по которым запрещено перемещение на мотоциклах. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • Ремонт дорогиВ маршрут не будут включаться ремонтируемые дороги.Доступность: Все страны
  • Запрет тягачей с одним или более трейлерамиВ маршрут не будут включаться дороги, на которых запрещено движение тягачей с одним или более трейлерами.Доступность: Выберите страны в Северной Америке и Европе
  • Запрет одноосных транспортных средствВ маршрут не будут включаться дороги, на которых запрещены одноосные транспортные средства.Доступность: Выберите страны в Северной Америке и Европе
  • Запрет транспортных средств со сдвоенными осямиВ маршрут не будут включаться дороги, на которых запрещены транспортные средства со сдвоенными осями.Доступность: Выберите страны в Северной Америке и Европе
  • Запрет сквозного проездаВ результаты не будут включаться дороги, по которым запрещен сквозной проезд.Доступность: Все страны
  • Ограничения для грузовиков с прицепомВ маршрут не будут включаться дороги, на которых запрещены грузовики с прицепом. Число прицепов задается параметром ограничений Number of Trailers on Truck.Доступность: Выберите страны в Северной Америке и Европе
  • Использовать маршруты для вредных веществМаршрут пройдет по дорогам, которые предназначены для перевозки опасных веществ.Доступность: Выберите страны в Северной Америке и Европе
  • Использовать маршруты для грузовиковМаршруты будут, по возможности, проходить по дорогам, которые предназначены для грузовиков, например, по дорогам, которые являются частью национальной дорожной сети, как указано в National Surface Transportation Assistance Act для США, или по дорогам, которые предназначены для грузовиков в штатах или провинциях, или по дорогам, которые предпочитают водители.Доступность: Выберите страны в Северной Америке и Европе
  • ПешкомВ маршрут не будут включаться дороги, по которым запрещено перемещение пешеходов.Доступность: Все страны
  • Ограничение массыВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей больше разрешенной массы. Вес транспортного средства задается параметром Vehicle Weight (в килограммах).Доступность: Выберите страны в Северной Америке и Европе
  • Ограничение по нагрузке на осьВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей с нагрузкой на ось больше разрешенной. Нагрузка на ось задается параметром Vehicle Weight per Axle (в килограммах).Доступность: Выберите страны в Северной Америке и Европе
  • Ограничение шириныВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей больше разрешенной ширины. Ширина транспортного средства задается параметром Vehicle Width (в метрах).Доступность: Выберите страны в Северной Америке и Европе
Примечание:

Значения, предоставляемые вами для данного параметра, игнорируются за исключением случаев, когда Режим передвижения задан как Пользовательский.

String
Значения Параметра атрибутов
(Дополнительный)

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

Примечание:

Значения, предоставляемые вами для данного параметра, игнорируются за исключением случаев, когда Режим передвижения задан как Пользовательский.

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

  • AttributeName – имя ограничения.
  • ParameterName – имя параметра, связанного с ограничением. В зависимости от целей ограничения, оно может иметь одно или несколько значений поля ParameterName.
  • ParameterValue- значение для ParameterName, используемое инструментом при оценке ограничения.

Параметр Значения Параметра атрибутов зависит от параметра Ограничения. Поле ParameterValue применяется, только если в качестве значения параметра Ограничения указано имя ограничения.

В параметре Значения Параметра атрибутов каждое ограничение (указанное, как AttributeName) содержит значение поля ParameterName, Использование ограничения, определяющее запрет, нежелательность или предпочтительность использования дорог, для которых установлено ограничение, а также степень нежелательности или предпочтительности использования дорог. Поле Использование ограничения ParameterName может иметь одно из следующих строковых значений или эквивалентных числовых значений, указанных в скобках:

  • PROHIBITED (-1) – передвижение по дорогам, имеющим это ограничение, полностью запрещено.
  • AVOID_HIGH (5) – Крайне маловероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • AVOID_MEDIUM (2) – маловероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • AVOID_LOW (1.3) – достаточно маловероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • PREFER_LOW (0.8) – достаточно вероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • PREFER_MEDIUM (0,5) – вероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • PREFER_HIGH (0,2) – Крайне вероятно, что инструмент включит в маршрут дороги с этим ограничением.

Как правило, для поля Использование ограничения используется значение по умолчанию, PROHIBITED, если ограничение связано с характеристиками транспортного средства, например, с его высотой. Однако в некоторых случаях значение поля Использование ограничения будет зависеть от ваших предпочтений при выборе маршрута. Например, для ограничения Избегать платных дорог параметр Использование ограничения имеет по умолчанию значение AVOID_MEDIUM. Это означает, что, при наличии данного ограничения инструмент будет избегать использования платных дорог при построении маршрута. Значение AVOID_MEDIUM также указывает, насколько важно избегать использования платных дорог при поиске лучшего маршрута: это ограничение имеет средний приоритет. При выборе AVOID_LOW исключение платных дорог из маршрута будет иметь меньшее значение, а при выборе AVOID_HIGH – большее, поэтому сервис будет создавать более длинные маршруты, чтобы по возможности избежать использования платных дорог. При выборе PROHIBITED использование платных дорог будет полностью запрещено, и сервис не сможет включать их даже частично в маршрут. Имейте в виду, что для некоторых целью является избегание или запрет платных дорог и избежание платы за проезд. И наоборот, другие предпочитают ездить по платным дорогам, потому что движение без пробок для них более ценно, чем деньги, потраченные на платные дороги. В последнем случае для параметра Использование ограничения следует выбрать значения PREFER_LOW, PREFER_MEDIUM или PREFER_HIGH. Чем выше предпочтительность, тем в большей степени маршрут будет проходить по дорогам с этим ограничением.

Record Set
Заполнить линии маршрута
(Дополнительный)

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

  • Отмечено (True) – выходные маршруты будут точно соответствовать геометрии уличной сети.
  • Не отмечено (False) – геометрия для выходных маршрутов не генерируется, при этом маршруты приводятся в виде таблицы. Вы не сможете создавать путевые листы, если линии маршрута не создаются.

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

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

Boolean
Допуск упрощения линий маршрута
(Дополнительный)

Степень упрощения геометрии выходных линий для маршрутов и направлений.

Значение, указанное для данного параметра, игнорируется, за исключением случаев, когда Режим передвижения задан как Пользовательский, который является значением по умолчанию.

Инструмент игнорирует этот параметр, если параметр populate_route_lines отключен (False).

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

Linear Unit
Заполнить путевой лист
(Дополнительный)

Укажите, должен ли инструмент создавать путевой лист для каждого маршрута.

  • Отмечено (True в Python) – будет создан путевой лист, настроенный в соответствии со значениями параметров Язык путевого листа, Имя стиля путевого листа и Единицы расстояния путевого листа.
  • Не отмечено (False в Python) – путевой лист не создается, и инструмент возвращает пустой слой Directions.

Boolean
Язык путевого листа
(Дополнительный)

Язык, на котором должен создаваться путевой лист.

Этот параметр используется, только если параметр Заполнить путевой лист отмечен (True в Python).

Значениями параметра могут быть следующие двух- или пятисимвольные коды языка:

  • ar - Арабский
  • bg - Болгарский
  • bs - Боснийский
  • ca - Каталонский
  • cs - Чешский
  • da -Датский
  • de - Немецкий
  • el - Греческий
  • en - Английский
  • es - Испанский
  • et - Эстонский
  • fi - Финский
  • fr - Французский
  • he - Иврит
  • hr - Хорватский
  • hu - Венгерский
  • id - Индонезийский
  • it - Итальянский
  • ja - Японский
  • ko - Корейский
  • lt - Литовский
  • lv - Латвийский
  • nb - Норвежский
  • nl - Нидерландский
  • pl - Польский
  • pt-BR - Португальский (Бразильский)
  • pt-PT - Португальский (Португалия)
  • ro - Румынский
  • ru - Русский
  • sk - Словацкий
  • sl - Словенский
  • sr - Сербский
  • sv - Шведский
  • th - Тайский
  • tr - Турецкий
  • uk - Украинский
  • vi - Вьетнамский
  • zh-CN - Китайский (Китай)
  • zh-HK - Китайский (Гонконг)
  • zh-TW - Китайский (Тайвань)

Сначала инструмент ищет точное соответствие для заданного языка, включая любую локализацию. Если не нашлось точного соответствия, будет выполнена попытка найти соответствие в пределах языковой семьи. Если соответствие не будет найдено, инструмент возвращает путевой лист на английском языке, являющемся языком по умолчанию. К примеру, если установлен язык путевого листа es-MX (мексиканский испанский), инструмент возвратит путевой лист на испанском, так как поддерживает код языка es и не поддерживает es-MX.

Внимание:

Если язык поддерживает локализацию например, Португальский Бразилия (pt-BR) и Европейский португальский (pt-PT), нужно задать языковую семью и локализацию. Если вы зададите только языковую семью, инструмент не найдет соответствие языковой семье и возвратит путевой лист на используемом по умолчанию английском языке. К примеру, если задан язык путевого листа pt, инструмент выдаст путевой лист на английском, поскольку не поймет, нужно ли выдавать его на языке pt-BR или на языке pt-PT.

String
Имя стиля путевого листа
(Дополнительный)

Укажите имя стиля форматирования для путевого листа. Этот параметр используется, только если параметр Заполнить путевой лист отмечен (True в Python).

  • Network Analyst DesktopЭтот стиль будет представлять готовый для печати путевой лист со всеми поворотами.
  • Навигация Network AnalystЭтот стиль будет представлять путевой лист со всеми поворотами для автомобильного навигационного устройства.
String
Режим передвижения
(Дополнительный)

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

Для получения списка имен поддерживаемых режимов передвижения запустите инструмент Получить режимы передвижения из набора инструментов Утилиты, используя то же подключение к ГИС-серверу, которое использовалось для доступа к этому инструменту. Инструмент Получить режимы передвижения добавляет в приложение таблицу Поддерживаемые режимы передвижения. В качестве входных данных можно задать любое значение в поле Travel Mode Name таблицы Поддерживаемые режимы передвижения. Вы также можете указать в качестве входного значение из поля Travel Mode Settings. Это ускоряет выполнение инструмента, поскольку инструменту не нужно находить настройки на основе имени режима перемещения.

Пользовательский (значение по умолчанию) – позволяет настроить собственный режим передвижения при помощи параметров этого режима (Развороты в соединениях, Использовать иерархию, Ограничения, Значения Параметров атрибутов и Импеданс). Значения по умолчанию для модели параметров пользовательского режима передвижения на легковом автомобиле. Также можно выбрать Пользовательский и задать указанные выше параметры пользовательского режима передвижения для моделирования быстрой пешей ходьбы или передвижения грузового автомобиля с определенными габаритными (по высоте) и весовыми характеристиками, загруженного определенным опасным грузом. Можете попробовать различные настройки для получения нужных вам результатов анализа. После определения настроек анализа вам необходимо связаться с администратором вашей организации и сохранить эти настройки как часть нового или существующего режима передвижения, чтобы любой пользователь вашей организации мог перезапустить анализ с такими же настройками.

Внимание:

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

String
Импеданс
(Дополнительный)

Задайте импеданс – значение, представляющее затраты или стоимость перемещения вдоль сегментов дорог или других частей транспортной сети.

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

Расстояние перемещения – это импеданс; длина дороги в километрах рассматривается как импеданс. В этом смысле расстояние аналогично для всех режимов – километр останется километром и для пешехода, и для машины. (Что может измениться, так это пути, по которым разрешено перемещаться в различных режимах, что влияет на расстояние между точками и моделируется настройками режима передвижения.)

При выборе импеданса на основе времени, такого как TravelTime, TruckTravelTime, Minutes, TruckMinutes или WalkTime, параметру Единицы граничных значений необходимо задать значение на основе времени. При выборе импеданса на основе расстояния, такого как Мили или Километры, Единицы граничных значений должны быть основаны на расстоянии.

  • Время в путиИспользуются данные исторического трафика или трафика в режиме реального времени. Эта опция применяется для моделирования времени, которое требуется автомобилю для передвижения по дорогам в определенное время суток, при использовании данных текущего трафика, где это доступно. При использовании этой опции вы можете дополнительно указать параметр TravelTime::Vehicle Maximum Speed (km/h), чтобы задать физическое ограничение скорости движения транспортного средства.
  • МинутыДанные о трафике в режиме реального времени не используются, но при этом используются средние исторические скорости передвижения автомобилей на данном участке.
  • Время грузовика в путиИспользуются данные исторического трафика или трафика в режиме реального времени, но скорость адаптирована в соответствии с максимальной разрешенной скоростью для грузовиков. Это применяется для моделирования времени, которое требуется грузовику для передвижения по дорогам в определенное время суток. При использовании этой опции вы можете дополнительно указать параметр TravelTime::Vehicle Maximum Speed (km/h), чтобы задать физическое ограничение скорости движения транспортного средства.
  • Минут на грузовикеНе используется трафик в реальном времени, расчет выполняется на основе самой маленькой исторической средней скорости автомобилей и максимально допустимой скорости, заданной на каждом участке дорог для грузовиков.
  • Время пешкомПо умолчанию задает скорость передвижения пешехода равной 5 км/ч, но это значение можно изменить с помощью атрибутивного параметра WalkTime::Walking Speed (km/h).
  • Время На Один Километр В ЧасПо умолчанию скорость равна 1 км/ч на всех дорогах и путях. Эту скорость нельзя изменить с помощью атрибутивных параметров.
  • Время в путиМоделируется время в пути для автомобиля. Это время является динамичным и изменяется в зависимости от транспортных потоков, если доступны данные трафика Это значение используется по умолчанию.
  • Время на грузовикеМоделируется время в пути для грузовика. Это время является статичным для каждой дороги и не зависит от трафика.
  • Время пешкомМоделируется время в пути для пешехода.
Внимание:

Значение, указанное вами для данного параметра, игнорируется, за исключением случаев, когда Режим передвижения задан как Пользовательский, который является значением по умолчанию.

Прежние версии:

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

String
Использование часового пояса для полей времени
(Дополнительный)

Указывает часовой пояс входных полей даты-времени, поддерживаемых инструментом. Этот параметр указывает часовой пояс для следующих полей: TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, TimeWindowEnd2, InboundArriveTime и OutboundDepartTime для заказов. TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 и TimeWindowEnd2 для станций. EarliestStartTime и LatestStartTime для маршрутов. TimeWindowStart и TimeWindowEnd для перерывов.

  • GEO_LOCALЗначения даты-времени, связанные с заказами или станциями, приводятся в том же часовом поясе, где находятся заказы и станции. Для маршрутов значения даты-времени основываются на часовом поясе, в котором расположено станция начала маршрута. Если у маршрута нет исходной станции, то все заказы и станции на всех маршрутах должны быть в одном часовом поясе. Для остановок значения даты-времени основываются на часовом поясе маршрута. Например, если ваша станция находится в районе с восточным стандартным временем и для него заданы первые значения времени (указаны как TimeWindowStart1 и TimeWindowEnd1) 08:00 и 10:00, то значениями временных окон будут считаться 08:00 и 10:00 по восточному стандартному времени.
  • UTCЗначения даты-времени, связанные с заказами или станциями, находятся в универсальном координированном времени UTC, и не основаны на часовом поясе, где находятся заказы или станции. Например, если станция расположена в зоне восточного стандартного времени и имеет значение первого временного окна (указано как TimeWindowStart1 и TimeWindowEnd1) 08:00 и 17:00, то значениями временных окон будут считаться 12:00 и 21:00 восточное стандартное время, при этом предполагается, что восточное стандартное время является летним временем.
  • GEO_LOCALGEO_LOCAL
  • UTCUTC

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

String
Сохранить выходной слой сетевого анализа
(Дополнительный)

Указывает, будут ли параметры анализа сохранены в виде файла слоя сетевого анализа. Вы не можете работать с этим файлом напрямую, даже если вы откроете его в приложении ArcGIS Desktop, например, в ArcMap. Это предназначено для отправки в техническую поддержку Ecri для диагностики качества результатов, получаемых инструментом.

  • Отмечено (True) – сохранить файл сетевого анализа. Файл загружается в временную директорию вашего компьютера. В ArcGIS Pro местоположение загруженного файла можно определить, просмотрев значение параметра Выходной слой сетевого анализа в соответствующей строке отчета о выполнении инструмента в истории геообработки вашего проекта. В ArcMap местоположение загруженного файла можно определить с помощью опции Копировать местоположение ниспадающего меню параметра Выходной слой сетевого анализа в соответствующей строке отчета о выполнении инструмента в окне Результаты геообработки.
  • Не отмечено (False) - файл слоя сетевого анализа не будет сохранен. Используется по умолчанию.

Boolean
Замещения
(Дополнительный)

Примечание:

Этот параметр предназначен только для внутреннего использования.

String
Сохранить данные маршрута
(Дополнительный)

Указывает, будут ли выходные данные включать файл .zip, содержащий базу геоданных, в которой хранятся входные и выходные данные анализа в формате, который может быть использован для дальнейшей публикации слоев маршрутов на ArcGIS Online или Portal for ArcGIS.

  • Отмечено (True) – сохранить данные маршрута как файл .zip. Файл загружается в временную директорию вашего компьютера. В ArcGIS Pro местоположение загруженного файла можно определить, просмотрев значение параметра Выходные данные маршрута в соответствующей строке отчета о выполнении инструмента в истории геообработки в вашем проекте. В ArcMap местоположение загруженного файла можно определить с помощью опции Копировать местоположение ниспадающего меню параметра Выходные данные маршрута в соответствующей строке отчета о выполнении инструмента в окне Результаты геообработки.

  • Не отмечено (False) – данные маршрута не сохранены. Используется по умолчанию.

Boolean
Импеданс времени
(Дополнительный)

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

  • МинутыИмпедансом времени будут минуты.
  • Время в путиИмпедансом времени будет время пути.
  • Время На Один Километр В ЧасИмпедансом времени будет время при одном км в час.
  • Время пешкомИмпедансом времени будет время пешком.
  • Минут на грузовикеИмпедансом времени будут минуты на грузовике.
  • Время грузовика в путиИмпедансом времени будет время пути на грузовике.
Примечание:
Если импеданс для режима перемещения, указанный с помощью параметра Импеданс, основан на времени, значения параметров Импеданс времени и Импеданс должны быть идентичны. В противном случае сервис выдаст ошибку.
String
Импеданс расстояния
(Дополнительный)

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

  • МилиИмпедансом расстояния будут мили.
  • КилометрыИмпедансом расстояния будут километры
Примечание:
Если импеданс для режима перемещения, указанный с помощью параметра Импеданс, основан на расстоянии, значения параметров Импеданс расстояния и Импеданс должны быть идентичными. В противном случае сервис выдаст ошибку.
String
Заполнить формы остановок
(Дополнительный)

Определяет, будет ли инструмент создавать формы для назначенных и неназначенных выходных остановок.

  • Отмечено (True) – назначенные и не назначенные выходные остановки создаются как точечные объекты. Это может быть полезно для визуализации того, какие остановки назначены маршрутам, а какие не могут быть назначены каким-либо маршрутам.

  • Не отмечено (False) – назначенные и не назначенные выходные остановки создаются в виде таблиц и не будут иметь форм. Используется по умолчанию. Используйте эту опцию, если вам не нужно, чтобы ваше приложение визуализировало выходные остановки и могло работать только с атрибутами остановок.

Boolean
Выходной формат
(Дополнительный)

Задает формат, в котором будут возвращены выходное объекты.

Если указан формат выхода на основе файла, такой как файл JSON или файл GeoJSON, выходные данные не будут добавлены к отображению, потому что приложение, такое как ArcMap или ArcGIS Pro, не может отобразить содержание файла результатов. Напротив, файл загружается в временную директорию вашего компьютера. В ArcGIS Pro местоположение загруженного файла можно определить, просмотрев значение параметра Выходной результирующий файл в соответствующей строке отчета о выполнении инструмента в истории геообработки вашего проекта. В ArcMap местоположение загруженного файла можно определить с помощью опции Копировать местоположение ниспадающего меню параметра Выходной результирующий файл в соответствующей строке отчета о выполнении инструмента в окне Результаты геообработки.

  • Набор объектовВыходные объекты возвращаются в виде классов объектов и таблиц. Это значение по умолчанию
  • Файл JSONВыходные объекты возвращаются в виде сжатого файла, содержащего представление JSON выходных данных. Если выбрана эта опция, на выходе будет один файл (с расширением .zip), содержащий один или несколько файлов JSON (с расширением .json) - для каждого созданного сервисом выходного набора.
  • Файл GeoJSONВыходные объекты возвращаются в виде сжатого файла, содержащего представление JSON выходных данных. Если выбрана эта опция, на выходе будет один файл (с расширением .zip), содержащий один или несколько файлов GeoJSON (с расширением .geojson) - для каждого созданного сервисом выходного набора.
String
Игнорировать некорректные положения заказа
(Дополнительный)

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

  • Отмечено (True) – операция построения проигнорирует все неправильные заказы и выдаст решение, если при этом не возникнут какие-нибудь еще ошибки. Если вам нужно быстро создать маршруты и передать их водителям, просто проигнорируйте некорректные заказы, постройте маршруты и отправьте их водителям. После этого решите проблемы с неправильным размещением заказов и включите их в анализ VRP для следующего рабочего дня или смены.

  • Не отмечено (False) – решения не будет при наличии недействительных заказов. Некорректный заказ – это заказ, который невозможно достичь при расчете VRP. Заказ может быть недоступен по различным причинам, в том числе когда он может быть расположен на запрещенном для проезда элементе сети; не расположен в сети вообще; размещен в несвязанном с другими сегменте сети.

Boolean
Настройки Найти местоположение
(Дополнительный)

Используйте этот параметр для указания настроек, влияющих на расположение входных данных, например таких, как максимальное расстояние поиска, используемое при поиске входных данных в сети, или какие сетевые источники используются для поиска местоположений.

Дополнительные сведения о способе размещения входных данных

Объект JSON локатора имеет следующие свойства:

  • tolerance и toleranceUnits — Позволяет контролировать максимальное расстояние поиска при поиске входных данных. Если на этом расстоянии не будет найдено допустимого сетевого положения, входной объект будет считаться не размещенным. Малый допуск поиска снижает вероятность размещения не на той улице, но увеличивает вероятность того, что вы не найдете ни одного допустимого сетевого положения. Значение параметра toleranceUnits может быть указано как одно из следующих значений:
    • esriCentimeters
    • esriDecimalDegrees
    • esriDecimeters
    • esriFeet
    • esriInches
    • esriIntFeet
    • esriIntInches
    • esriIntMiles
    • esriIntNauticalMiles
    • esriIntYards
    • esriKilometers
    • esriMeters
    • esriMiles
    • esriMillimeters
    • esriNauticalMiles
    • esriYards
  • sources — Позволяет контролировать, какой сетевой источник может использоваться для определения местоположения. Например, вы можете настроить анализ для размещения входных объектов на улицах, но не на тротуарах. Список возможных источников для поиска местоположений для размещения зависит от набора сетевых данных, на который ссылается этот сервис. Для размещения используются только те источники, которые присутствуют в массиве источников. Источники указываются как массивы объектов, каждый из которых имеет следующие свойства:
    • name — Имя класса объектов сетевого источника, который можно использовать для размещения входных данных
  • allowAutoRelocate — Позволяет управлять тем, могут ли входные данные с существующими полями сетевого местоположения при выполнении решения автоматически перемещаться, чтобы обеспечить действительные, маршрутизируемые поля местоположения для анализа. Если значение true, точки, расположенные на ограниченных элементах сети, и точки, на которые влияют барьеры, будут перемещены к ближайшему маршрутизируемому положению. Если значение false, поля сетевых местоположений будут использоваться как есть, даже если точки являются недостижимыми и могут привести к сбою расчета. Даже если значение равно false, входные данные без полей местоположений или с незаполненными полями местоположений будут размещены в процессе выполнения решения.
Примечание:
В настоящее время вы не можете указать разные имена источников для массива sources. Кроме того, значение allowAutoRelocate всегда задано как true, поскольку сервис не поддерживает поля местоположения.

Значение параметра указывается как объект JSON. Объект JSON позволяет вам указать локатор JSON для всех входных объектов анализа, или вы можете указать замещение для конкретных входных данных. Замещение позволяет вам иметь разные настройки для каждых входных данных анализа. Например, вы можете запретить размещение остановок на съездах с шоссе и разрешить размещение точечных ограждений на съездах с шоссе. При указании Locate_Settings JSON необходимо указать свойства tolerance, toleranceUnits и allowAutoRelocate. Если вам нужно предоставить другой JSON локатора для определенного входного класса, вам необходимо включить свойство замещения для этих входных данных. Имя свойства должно совпадать с именем входного параметра. JSON локатора для определенных входных данных не обязательно должен включать все свойства; вам нужно включить только те свойства, которые отличаются от свойств JSON локатора по умолчанию.

String

Производные выходные данные

ПодписьОписаниеТип данных
Выходные отмененные остановки
Примечание:

Значение по умолчанию для этого параметра можно получить из json ресурса сервиса. Добавьте ?token=<yourToken>&f=pjson к URL-адресу сервиса, чтобы получить доступ к json ресурса сервиса.

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

Feature Set
Выходные остановки

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

Feature Set
Выходные маршруты

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

Feature Set
Выходной путевой лист

Обеспечивает доступ к пошаговому путевому листу для каждого маршрута.

Feature Set
Расчет прошел успешно

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

Boolean
Выходной слой сетевого анализа

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

File
Данные выходного маршрута

Файл .zip, содержащий всю информацию для определенного маршрута.

File
Файл выходных результатов

Файл .zip, содержащий результаты анализа с одним или несколькими файлами для каждого выхода. Формат отдельного файла задается параметром Выходной формат.

File
Пакет выходного слоя сетевого анализа

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

File
Стоимость применения

Этот параметр показывает кредиты, использованные в ходе анализа.

Примечание:

Каждый анализ может генерировать разное количество оплачиваемых объектов и, следовательно, использовать разное количество кредитов. Если сервис не может определить число кредитов, то параметр usage_cost возвращает значение -1 для credits.

JSON

arcpy.agolservices.SolveVehicleRoutingProblem(orders, depots, routes, breaks, time_units, distance_units, {analysis_region}, {default_date}, {uturn_policy}, {time_window_factor}, {spatially_cluster_routes}, {route_zones}, {route_renewals}, {order_pairs}, {excess_transit_factor}, {point_barriers}, {line_barriers}, {polygon_barriers}, {use_hierarchy_in_analysis}, restrictions, {attribute_parameter_values}, {populate_route_lines}, {route_line_simplification_tolerance}, {populate_directions}, {directions_language}, {directions_style_name}, {travel_mode}, {impedance}, {time_zone_usage_for_time_fields}, {save_output_layer}, {overrides}, {save_route_data}, {time_impedance}, {distance_impedance}, {populate_stop_shapes}, {output_format}, {ignore_invalid_order_locations}, {locate_settings})
ИмяОписаниеТип данных
orders

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

При указании заказов вы можете задать свойства каждого из них, такие как имя или время обслуживания, с помощью атрибутов:

ObjectID

Управляемое системой поле ID.

Name

Имя заказа. Имя должно быть уникальным. Если оставить имя равным null, имя будет автоматически сгенерировано во время решения.

Description

Описательная информация о заказе. Может содержать любую текстовую информацию по заказу и не имеет ограничений на уникальность. В поле Name, к примеру, можно хранить идентификационный номер клиента, а в поле Description – фактическое имя или адрес этого клиента.

ServiceTime

Данное свойство определяет время, которое будет проведено в сетевом положении при посещении его на маршруте; это означает, что оно хранит в себе значение импеданса для сетевого положения. Нулевое значение или значение NULL указывают, что сетевое положение не требует времени обслуживания.

Единица измерения для значения данного поля задается параметром time_units.

TimeWindowStart1

Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени начала.

Временное окно только указывает, когда транспортное средство может прибыть по заказу, но не указывает, когда должно закончиться время обслуживания. Чтобы учесть время обслуживания и уехать до окончания временного окна, вычтите значение ServiceTime из поля TimeWindowEnd1.

Поля временных окон (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 и TimeWindowEnd2) могут содержать только значение времени или даты и времени, они не могут быть целыми числами, представляющими миллисекунды с начала Эпохи. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени. Если поле времени, такое как TimeWindowStart1, имеет значение только времени (например, 8:00), дата считается датой по умолчанию, установленной для анализа. Использование значений даты и времени (например, 7/11/2010 8:00 AM) позволяет задавать временные окна, которые могут охватывать несколько дней.

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

TimeWindowEnd1

Время окончания первого окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени окончания.

TimeWindowStart2

Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие второго временного окна.

Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null.

Если оба временных окна не имеют значения null, то они не могут перекрываться. Кроме того, второе временное окно должно появиться после первого.

TimeWindowEnd2

Время окончания второго временного окна для сетевого положения. Это поле может содержать значение null.

Когда оба TimeWindowStart2 и TimeWindowEnd2 имеют значение null, то второе временное окно отсутствует.

Когда TimeWindowStart2 не null, а TimeWindowEnd2 – null, то имеется второе временное окно со временем начала, но без времени окончания. Это действительно так.

MaxViolationTime1

Временное окно считается нарушенным, если прибытие происходит после окончания временного окна. В данном поле указывается максимальное допустимое время превышения для первого временного окна заказа. Оно может содержать нулевое значение, но не может содержать отрицательные значения. Нулевое значение показывает, что нарушение временного окна в первом временном окне заказа недопустимо; то есть первое временное окно является жестким. С другой стороны, значение NULL показывает, что для допустимого превышения времени предел отсутствует. Ненулевое значение показывает максимальную величину опоздания; например, маршрут может прибыть на точку заказа в течение 30 минут после окончания первого временного окна.

Единица измерения для значения данного поля задается параметром Единицы поля времени

Превышение временного окна может отслеживаться и взвешиваться механизмом расчета. Следовательно, вы можете направить механизм расчета VRP на выполнение одного из следующих действий:

  • Сведите к минимуму общее время нарушения независимо от увеличения транспортных расходов для автопарка.
  • Найдите решение, которое уравновешивает общее превышение времени и расходы на поездку.
  • Игнорируйте общее превышение времени и минимизируйте стоимость проезда для автопарка.

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

MaxViolationTime2

Максимальное допустимое время нарушения для второго временного окна заказа. Данное поле аналогично полю MaxViolationTime1.

InboundArriveTime

Определяет, когда доставляемый товар будет готов на станции.

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

Это поле поможет смоделировать возможные наплывы заказов доставок. Например, работа над заказом требует специальных материалов, которые отсутствуют на станции. Материалы отправляются из другого места и прибудут на склад в 11:00. Чтобы убедиться, что ни один маршрут, который начинается до их доставки, не приписан к заказу, входное время заказа устанавливается на 11:00. Специальные материалы будут доставлены в 11:00, загружены в автомобиль, который затем отправится со станции выполнять приписанные ему заказы.

Примечания:

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

  • Это поле времени может содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 11:00 AM), дата предполагается равной дате, заданной для анализа по умолчанию. Если же поле времени содержит дату в Станциях, Маршрутах, Заказах или Перерывах, дата по умолчанию игнорируется. В этом случае укажите все такие поля с датой и временем (например, 7/11/2015 11:00 AM).

  • Механизм расчета задачи выбора маршрута транспорта использует InboundArriveTime, независимо от значения поля DeliveryQuantities.

  • Если указано также исходящее время выезда, этот момент времени должен наступить после входящего времени прибытия.

OutboundDepartTime

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

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

Это поле поможет смоделировать возможные наплывы заказов доставок. Например, судоходная компания посылает грузовики забрать пакеты с заказами, привезти их на станцию, откуда они будут перенаправлены на другие объекты и отправлены по маршруту к месту назначения. Ежедневно в 15:00 полуприцеп останавливается на станции, чтобы забрать приоритетные пакеты и отвезти их непосредственно на центральную станцию обработки. Чтобы избежать задержки приоритетных пакетов до 15:00 вечера следующего дня, судоходная компания старается, чтобы грузовики забирали приоритетные пакеты из заказов и отвозили их на станцию до 15:00. Этого можно достичь путем установки 15:00 в качестве исходящего времени отъезда.

Примечания:

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

  • Это поле времени может содержать только значение времени или даты и времени. Если поле времени имеет значение только времени (например, 11:00 AM), дата предполагается равной дате, заданной для анализа по умолчанию. Если же поле времени содержит дату в Станциях, Маршрутах, Заказах или Перерывах, дата по умолчанию игнорируется. В этом случае укажите все такие поля с датой и временем (например, 7/11/2015 11:00 AM).

  • Механизм расчета задачи выбора маршрута транспорта использует OutboundDepartTime, независимо от значения поля PickupQuantities.

  • Если указано также входящее время прибытия, этот момент времени должен наступить до исходящего времени отъезда.

DeliveryQuantities

Размер доставки. Размер можно указать в любом измерении, например вес, объем или количество. Вы можете также указать несколько различных измерений; например, вес и объем.

Введите число объектов поставки без указания единиц. Например, если необходимо выполнить доставку объекта массой 300 фунтов по заказу, введите 300. Вам необходимо запомнить, что данное значение приведено в фунтах.

Если при составлении маршрута учитываются несколько измерений, разделяйте их числовые значения пробелами. Например, если вы записываете массу и объем поставки в 2 000 фунтов и 100 кубических футов, введите 2000 100. В этом случае вам необходимо запомнить, что данные значения приведены в фунтах и кубических футах. Вам также необходимо запомнить последовательность введения значений и соответствующие им единицы измерения.

Убедитесь, что Capacities для Routes и DeliveryQuantities и PickupQuantities для Orders указаны таким же образом, а это значит, что значения должны быть в таких же единицах измерения. При использовании нескольких измерений они должны быть перечислены в одной последовательности для всех параметров. Например, если вы указываете вес в фунтах, а затем объем в кубических футах для DeliveryQuantities, то емкость для ваших маршрутов и количество сборов для ваших заказов необходимо указать таким же образом: вес в фунтах, затем объем в кубических футах. При объединении единиц измерения или изменении их последовательности вы получите нежелательные результаты без предварительного уведомления об этом.

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

PickupQuantities

Размер загрузки. Размер можно указать в любом измерении, например вес, объем или количество. Вы можете также указать несколько различных измерений; например, вес и объем. При этом вы не можете использовать отрицательные значения. Данное поле аналогично полю DeliveryQuantities для Orders.

В случае поездки для обмена, заказ может содержать указанное количество как поставки, так и загрузки.

Revenue

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

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

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

SpecialtyNames

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

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

Для иллюстрации того, что такое специальные требования, и как они работают, предположим, что у компании по уходу за газонами и подрезанию деревьев имеется часть заказов, которые требуют применения автоподъемника с люлькой для обрезки высоких деревьев. Компания введет BucketTruck в поле SpecialtyNames для данных заказов, чтобы указать на наличие специального требования. SpecialtyNames для остальных заказов остается null. Аналогичным образом, компания введет BucketTruck в поле SpecialtyNames маршрутов, выполняемых грузовиками со гидравлическими стрелами-манипуляторами. Для остальных маршрутов данное поле останется null. Во время решения механизм расчета VRP назначает заказы без особых требований для любого маршрута, но назначает заказы, для которых требуются автовозы, только маршрутам, в которых они есть.

AssignmentRule

Задает правило присвоения заказа маршруту. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

  • 0 (Исключить) – Заказ будет исключен из последующего решения.
  • 1 (Сохранить маршрут и соответствующий порядок следования) – Механизм расчета должен всегда назначать заказ для предварительно назначенного маршрута в предварительно назначенной относительной последовательности во время операции решения. Если правило назначения нельзя учесть, то это приведет к нарушению заказа. При помощи данной настройки поддерживается только относительная последовательность, а не абсолютная. Для иллюстрации данного утверждения представим два заказа: A и B. Они имеют последовательные значения 2 и 3, соответственно. Если вы установите значения поля AssignmentRule на Сохранить маршрут и соответствующий порядок следования, значения последовательностей заказов A и B могут измениться после расчета, поскольку другие заказы, остановки и посещения станции могут произойти до, между или после A и B. Однако B не может быть обслужен раньше, чем A.
  • 2 (Сохранить маршрут) – механизм расчета должен всегда назначать заказ для предварительно назначенного маршрута во время расчета. Действительная последовательность также должна быть задана, даже несмотря на то, что последовательность может сохраняться или нет. Если заказ не может быть присвоен указанному маршруту, результатом будет нарушение заказа.
  • 3 (Заместить) – механизм расчета пытается сохранить маршрут и предварительно назначенную последовательность для заказа во время расчета. Однако новый маршрут или последовательность заказа может быть назначена, если это поможет сократить общее значение объективной функции. Это значение используется по умолчанию.
  • 4 (Первый якорь) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время расчета. Он присваивает заказу маршрут и делает этот заказ первым, чтобы сократить общую стоимость функции достижения цели.
  • 5 (Последний якорь) – механизм расчета игнорирует маршрут и предварительно назначенную последовательность (если есть) для заказа во время расчета. Он присваивает заказу маршрут и делает этот заказ последним, чтобы сократить общую стоимость функции достижения цели.

Это поле не может содержать значения null.

CurbApproach

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

  • 0 (С любой стороны) – Транспортное средство может подъезжать и отъезжать от точки заказа в любом направлении, поэтому в месте инцидента разрешен разворот. Данную настройку можно выбрать, если для транспортного средства возможно и желательно развернуться в месте заказа. Такое решение может зависеть от ширины дороги и интенсивности движения или от наличия у заказа места для стоянки, где транспортное средство может выполнить разворот.
  • 1 (Справа по направлению движения) – когда транспортное средство подъезжает или отъезжает от точки заказа, она должна находиться по правую сторону транспортного средства. Разворот запрещен. Эта опция обычно используется для таких транспортных средств, как автобусы, которые должны подъезжать к автобусной остановке так, чтобы она находилась справа.
  • 2 (Слева по направлению движения) – когда транспортное средство подъезжает и отъезжает от точки заказа, бордюр должен находиться с левой стороны транспортного средства. Разворот запрещен. Эта опция обычно используется для таких транспортных средств, как автобусы, которые должны подъезжать к автобусной остановке так, чтобы она находилась слева.
  • 3 (Нет разворота) – при подъезде транспортного средства к точке заказа бордюр может располагаться с любой стороны транспортного средства. Но при отправлении транспортное средство не должно выполнять разворот.

Атрибут CurbApproach был разработан для работы с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Сначала рассмотрим случай, когда точка заказа находится с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. Вы можете выбрать, с какой из двух сторон подъехать к точке заказа, независимо от национального стандарта дорожного движения, т.е. где будет находится точка заказа – справа или слева от транспортного средства. Например, если необходимо подъехать к точке заказа так, чтобы она не была отделена от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании.

RouteName

Имя маршрута, для которого назначен заказ.

Данное поле используется для предварительного назначения заказа определенному маршруту. Оно может содержать значение NULL, показывающие, что заказ предварительно не назначен ни одному маршруту, и механизм расчета определяет наилучшее из возможных назначений маршрутов для заказа. Если оно задано со значением null, то поле Sequence также должно быть равно null.

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

Sequence

Это обозначает последовательность заказа на маршруте.

Данное поле используется для указания относительной последовательности для заказа на маршруте. Данное поле может содержать значение NULL, показывающие, что заказ может быть размещен в любой точке маршрута. Значение null может иметь место только вместе со значением null RouteName.

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

После расчета в поле Sequence будут содержаться значения последовательности заказа для назначенного маршрута. Выходные значения последовательности для маршрута едины для посещений станций, заказов и перерывов; начинаются с 1 (на начальной станции); и являются последовательными. Минимальным возможным выходным значением последовательности для заказа на маршруте является 2, это обусловлено тем, что маршрут всегда начинается со станции.

Bearing

Направление, в котором движется точка. Единицами измерения являются градусы, отсчитывается по часовой стрелке от направления на истинный север. Это поле используется совместно с полем BearingTol.

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

Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка.

BearingTol

Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing находится в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра.

Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое местоположение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра.

NavLatency

Это поле может использоваться в процессе решения, только если в полях Bearing и BearingTol также есть значения; а ввод значения в поле NavLatency не является обязательным, даже когда в полях Bearing и BearingTol присутствуют значения. NavLatency указывает, сколько времени, как ожидается, пройдет с момента отправки информации GPS с движущегося транспортного средства на сервер и до момента получения обработанного маршрута навигационным устройством транспортного средства.

Единицы измерения NavLatency совпадают с единицами вашего атрибута импеданса.

Feature Set
depots

Задайте одну или несколько станций для данной задачи нахождения маршрута транспорта. Станция – это место, откуда отправляется транспортное средство в начале рабочего дня, и куда оно возвращается в конце рабочего дня. Автотранспорт загружается (для доставки) или разгружается (для самовывоза) на станциях. В некоторых случаях станция может также служить местом пополнения загрузки, в котором транспортное средство может разгружаться или догружаться и продолжать выполнять доставку и сбор. У станции есть значения времени открытия и закрытия, указываемые жестким временным окном. Транспортные средства не могут прибывать на станцию за пределами этого временного окна.

При указании станций вы можете задать свойства каждой из них, такие как имя или время обслуживания, с помощью атрибутов:

ObjectID

Управляемое системой поле ID.

Name

Имя станции. Поля StartDepotName и EndDepotName маршрутов ссылаются на указанные здесь имена. На них также ссылаются обновления маршрута при их использовании.

Имена депо нечувствительны к регистру и должны быть не пустыми и уникальными.

Description

Описательная информация о местоположении склада. Может использоваться любая текстовая информация и нет ограничений на уникальность.

Возможно, необходимо будет записать регион, в котором находится станция, или ее адрес и номер телефона; эту информацию можно ввести здесь, а не в поле Name.

TimeWindowStart1

Время начала и конца первого временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени начала.

Поля временных окон (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 и TimeWindowEnd2) могут содержать только значение времени или даты и времени, они не могут быть целыми числами, представляющими миллисекунды с начала Эпохи. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени. Если поле времени, такое как TimeWindowStart1, имеет значение только времени (например, 8:00), дата считается датой по умолчанию, установленной для анализа. Использование значений даты и времени (например, 7/11/2010 8:00 AM) позволяет задавать временные окна, которые могут охватывать несколько дней.

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

TimeWindowEnd1

Время окончания первого окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие времени окончания.

TimeWindowStart2

Время начала и конца второго временного окна для сетевого положения. Это поле может содержать значение null; значение null указывает на отсутствие второго временного окна.

Если первое временное окно содержит null, как указано в полях TimeWindowStart1 и TimeWindowEnd1, то второе временное окно также должно иметь значения null.

Если оба временных окна непустые, то они не могут перекрываться. Кроме того, второе временное окно должно появиться после первого.

TimeWindowEnd2

Время окончания второго временного окна для сетевого положения. Это поле может содержать значение null.

Когда оба TimeWindowStart2 и TimeWindowEnd2 имеют значение null, то второе временное окно отсутствует.

Когда TimeWindowStart2 не null, а TimeWindowEnd2 – null, то имеется второе временное окно со временем начала, но без времени окончания. Это действительно так.

CurbApproach

  • 0 (С любой стороны) – транспортное средство может подъезжать и отъезжать от станции в любом направлении, поэтому в месте инцидента разрешен разворот. Эту настройку можно выбрать, если транспортное средство может развернуться на станции и это удобно. Такое решение может зависеть от ширины дороги и интенсивности движения или от наличия у станции места для стоянки, где транспортное средство может выполнить разворот.
  • 1 (Справа по направлению движения) – когда транспортное средство подъезжает или отъезжает от станции, она должна находиться по правую сторону транспортного средства. Разворот запрещен. Эта опция обычно используется для таких транспортных средств, как автобусы, которые должны подъезжать к автобусной остановке так, чтобы она находилась справа.
  • 2 (Слева по направлению движения) – когда транспортное средство подъезжает и отъезжает от станции, бордюр должен находиться с левой стороны транспортного средства. Разворот запрещен. Эта опция обычно используется для таких транспортных средств, как автобусы, которые должны подъезжать к автобусной остановке так, чтобы она находилась слева.
  • 3 (Нет разворота) – при подъезде транспортного средства к станции бордюр может располагаться с любой стороны транспортного средства. Но при отправлении транспортное средство не должно выполнять разворот.

Атрибут CurbApproach был разработан для работы с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Сначала рассмотрим случай, когда станция находится с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. Вы можете выбрать, с какой из двух сторон подъехать к станции, независимо от национального стандарта дорожного движения, т.е. где будет находится точка заказа – справа или слева от транспортного средства. Например, если необходимо подъехать к станции так, чтобы она не была отделена от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании.

Bearing

Направление, в котором движется точка. Единицами измерения являются градусы, отсчитывается по часовой стрелке от направления на истинный север. Это поле используется совместно с полем BearingTol.

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

Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка.

BearingTol

Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing находится в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра.

Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое местоположение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра.

NavLatency

Это поле может использоваться в процессе решения, только если в полях Bearing и BearingTol также есть значения; а ввод значения в поле NavLatency не является обязательным, даже когда в полях Bearing и BearingTol присутствуют значения. NavLatency указывает, сколько времени, как ожидается, пройдет с момента отправки информации GPS с движущегося транспортного средства на сервер и до момента получения обработанного маршрута навигационным устройством транспортного средства.

Единицы измерения NavLatency совпадают с единицами вашего атрибута импеданса.

Feature Set
routes

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

Для задания свойств маршрутов можно использовать следующие атрибуты:

Name

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

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

StartDepotName

Имя начальной станции маршрута. Это поле является внешним ключом для поля Name в классе Depots.

Если значение StartDepotName - null, то маршрут начинается с первого назначенного заказа. Исключение начальной станции полезно в том случае, если начальное положение транспортного средства неизвестно или неважно для вашей задачи. Однако, когда StartDepotName имеет значение null, EndDepotName не может быть null.

Виртуальные начальные станции не допускаются, если заказы или станции находятся в нескольких часовых поясах.

Если маршрут выполняет доставку и StartDepotName имеет значение null, то предполагается, что груз загружен в транспортное средство на виртуальной станции перед началом маршрута. Для маршрута без обновления заказы маршрутов (с ненулевыми значениями DeliveryQuantities в Orders) загружаются на начальной станции или виртуальной станции. Для маршрута с обновлениями, на начальной или виртуальной станции выполняется загрузка только тех заказов маршрутов, которые выполняются до первого обновления.

EndDepotName

Имя конечной станции маршрута. Это поле является внешним ключом для поля Name в классе Depots.

StartDepotServiceTime

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

Единица измерения для значения данного поля задается параметром Единицы поля времени.

Время обслуживания на начальной и конечной станции является фиксированным (определяется значениями полей StartDepotServiceTime и EndDepotServiceTime) и не учитывает фактическую загрузку для маршрута. Например, время, затраченное на загрузку транспортного средства на начальной станции, может зависеть от размера заказов. Время обслуживания на станции может быть присвоено значениям, соответствующим полной загрузке грузовика или средней загрузке грузовика, или вы можете сделать свою собственную оценку времени.

EndDepotServiceTime

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

Единица измерения для значения данного поля задается параметром Единицы поля времени.

Время обслуживания на начальной и конечной станции является фиксированным (определяется значениями полей StartDepotServiceTime и EndDepotServiceTime) и не учитывает фактическую загрузку для маршрута. Например, время, затраченное на загрузку транспортного средства на начальной станции, может зависеть от размера заказов. Время обслуживания на станции может быть присвоено значениям, соответствующим полной загрузке грузовика или средней загрузке грузовика, или вы можете сделать свою собственную оценку времени.

EarliestStartTime

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

Это поле не может содержать значения null и имеет значение по умолчанию только для времени, равное 8:00. Значение по умолчанию интерпретируется как 8:00 утра на дату по умолчанию, установленную для анализа.

При решении задачи, которая охватывает несколько часовых поясов, часовой пояс EarliestStartTime соответствует часовому поясу начальной станции.

LatestStartTime

Наиболее позднее допустимое время начала маршрута.

Это поле не может содержать значения NULL и имеет значение по умолчанию только времени, равное 10:00 AM. Значение по умолчанию интерпретируется как 10:00 утра в наборе дат по умолчанию для анализа.

При решении задачи, которая охватывает несколько часовых поясов, часовой пояс LatestStartTime соответствует часовому поясу начальной станции.

ArriveDepartDelay

В этом поле хранится величина времени в пути, необходимая для ускорения транспортного средства до обычной скорости передвижения, замедления его до остановки и перемещения из сети и в сеть (например, на парковку и с парковки). Включение значения ArriveDepartDelay позволяет механизму расчета VRP не отправлять множество маршрутов для обслуживания физически совпадающих заказов.

Стоимость для этого свойства выводится между визитами по несовпадающим заказам, станциям и обновлениям маршрута. Например, если маршрут начинается со станции и посещает первый заказ, ко времени пути добавляется общая задержка прибытия/отправления. То же касается пути от первого заказа ко второму. Если второй и третий заказы совпадают, значение ArriveDepartDelay между ними не добавляется, поскольку транспортному средству не нужно перемещаться. Если маршрут следует к пункту обновления загрузки, значение снова добавляется ко времени в пути.

Хотя транспортному средству необходимо замедляться и останавливаться на перерыв, а после него ускоряться, механизм расчета VRP не может добавлять значение ArriveDepartDelay для перерывов. Это означает, что если маршрут оставляет заказ, останавливается на перерыв и переходит к следующему заказу, задержка прибытия/отправления добавляется только один раз, а не дважды.

Например, предположим, что имеются пять совпадающих заказов в одном многоэтажном доме, которые обслуживаются тремя разными маршрутами. Это значит, что добавляются три задержки прибытия/отправления; то есть трем водителям необходимо раздельно найти места для парковки и войти в одно и то же здание. Однако если заказы могут быть обслужены одним маршрутом, парковаться и входить в здание необходимо только одному водителю – и возникает только одна задержка прибытия/отправления. Поскольку механизм расчета задачи выбора маршрута транспорта пытается минимизировать затраты, он попробует ограничить задержки прибытия/отправления и поэтому определит вариант с одним маршрутом. (Обратите внимание, что при наличии других ограничений – специальных требований, временных окон или емкостей – могут понадобиться несколько маршрутов.)

Единица измерения для значения данного поля задается параметром time_units.

Capacities

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

Введите вместимости без указания единиц. Например, если ваш автомобиль может перевозить максимум 40 000 фунтов, введите 40000. Необходимо помнить, что данное значение задано в фунтах.

Если при составлении маршрута учитываются несколько измерений, разделяйте их числовые значения пробелами. Например, если вы записываете массу и объем поставки в 2 000 фунтов и 100 кубических футов, введите 2000 100. В этом случае вам необходимо запомнить, что данные значения приведены в фунтах и кубических футах. Вам также необходимо запомнить последовательность введения значений и соответствующие им единицы измерения.

Запомнить единицы измерения и их последовательность важно по нескольким причинам: во-первых, для возможности интерпретации информации в будущем, во-вторых для правильного ввода значений полей DeliveryQuantities и PickupQuantities для заказов. Имейте в виду, что механизм расчёта VRP одновременно ссылается на Capacities, DeliveryQuantities и PickupQuantities, чтобы убедиться в том, что маршрут не станет перегруженным. Единицы измерения нельзя вводить в поле, и инструмент VRP не может преобразовывать единицы. Вы должны ввести значения для трех полей, используя одни и те же единицы измерения и одну и ту же последовательность единиц измерения, чтобы обеспечить правильную интерпретацию значений. Если вы комбинируете единицы измерения или изменяете последовательность в любом из трех полей, возникают нежелательные результаты без каких-либо предупреждающих сообщений. Рекомендуется заранее определить стандарт ввода единиц измерения и последовательность их ввода и постоянно использовать ее при вводе значений для этих трех полей.

Пустая строка или значение NULL эквивалентны бесконечности. Значение емкости не может быть отрицательным.

Если в поле Capacities содержится недостаточное число значений относительно полей DeliveryQuantities или PickupQuantities в заказах, оставшиеся значения интерпретируются как равные бесконечности.

Механизм расчета VRP только выполняет простой двоичный тест для определения превышения емкостей. Если значение емкости маршрута выше или равно общей вместимости, то механизм расчета VRP предположит, что груз помещается в транспортное средство. Это может быть неверно, в зависимости от фактической формы груза и транспортного средства. Например, механизм расчета VRP позволяет вам загрузить сферу объемом 1 000-кубических футов в грузовик вместимостью 1 000 кубических футов и шириной 8 футов. В действительности, сфера имеет диаметр 12,6 фута, и ее нельзя поместить в грузовик шириной 8 футов.

FixedCost

Фиксированное денежная стоимость, которая принимается только в том случае, если маршрут используется в решении (то есть, что для него назначены некоторые заказы). Это поле может содержать значения NULL; значение NULL соответствует нулевой фиксированной стоимости. Эта стоимость является частью общей стоимости эксплуатации маршрута.

CostPerUnitTime

Примененная денежная стоимость – на единицу времени работы – для общей продолжительности маршрута, включая значения времени в пути, а также времени обслуживания и ожидания на заказах, станциях и в перерывах. Это поле не может содержать значения null и имеет значение по умолчанию, равное 1.0.

Единица измерения для значения данного поля задается параметром time_units.

CostPerUnitDistance

Примененная денежная стоимость – на единицу пройденного расстояния – для длины маршрута (общее пройденное расстояние). Это поле может содержать значения null; значение null указывает на нулевую стоимость.

Единица измерения для значения данного поля задается параметром distance_units.

OvertimeStartTime

Продолжительность регулярного времени работы перед началом вычисления сверхурочных. Это поле может содержать значения null; значение null указывает, что сверхурочная работа не применяется.

Единица измерения для значения данного поля задается параметром time_units.

Например, если водителю выплачиваются сверхурочные, если общая длительность маршрута превышает восемь часов, значение OvertimeStartTime указывается равным 480 (8 часов * 60 минут/час), при этом в качестве единиц времени задано значение минуты.

CostPerUnitOvertime

Денежная стоимость для единицы времени сверхурочной работы. Это поле может содержать значения null; значение null соответствует равенству значений CostPerUnitOvertime и CostPerUnitTime.

MaxOrderCount

Максимальное допустимое число заказов на маршруте. Это поле не может содержать значения NULL и имеет значение по умолчанию, равное 30.

MaxTotalTime

Максимально допустимая продолжительность маршрута. Продолжительность (длительность) маршрута включает в себя значения времени в пути, а также времени обслуживания и ожидания на заказах, на станциях и в перерывах. Это поле может содержать значения null; значение null указывает на отсутствие ограничений на продолжительность маршрута.

Единица измерения для значения данного поля задается параметром time_units.

MaxTotalTravelTime

Максимально допустимое время в пути для маршрута. Время в пути включает только время, проведенное за рулем, и не включает время обслуживания или ожидания.

Это поле может содержать значения null; значение null соответствует отсутствию ограничений по максимально допустимому времени передвижения по маршруту. Значение данного поля не может быть больше значения поля MaxTotalTime.

Единица измерения для значения данного поля задается параметром time_units.

MaxTotalDistance

Максимально допустимое расстояние для маршрута.

Единица измерения для значения данного поля задается параметром distance_units.

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

SpecialtyNames

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

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

Для иллюстрации того, что такое специальные требования, и как они работают, предположим, что у компании по уходу за газонами и подрезанию деревьев имеется часть заказов, которые требуют применения автоподъемника с люлькой для обрезки высоких деревьев. Компания введет BucketTruck в поле SpecialtyNames для данных заказов, чтобы указать на наличие специального требования. SpecialtyNames для остальных заказов остается null. Аналогичным образом, компания введет BucketTruck в поле SpecialtyNames маршрутов, выполняемых грузовиками со гидравлическими стрелами-манипуляторами. Для остальных маршрутов данное поле останется null. Во время решения механизм расчета VRP назначает заказы без особых требований для любого маршрута, но назначает заказы, для которых требуются автовозы, только маршрутам, в которых они есть.

AssignmentRule

Задает правило присвоения заказа маршруту. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

Это поле не может содержать значения null.

  • 1 (Include) – маршрут включен в решение. Это значение используется по умолчанию.
  • 2 (Exclude) – маршрут исключен из решения.

Record Set
breaks

Это время отдыха или перерывы для маршрутов в заданной задаче нахождения маршрута транспорта. Перерыв связан ровно с одним маршрутом и может быть взят после выполнения заказа, на пути к заказу или перед обслуживанием заказа. У него есть время начала и длительность, которые могут оплачиваться или не оплачиваться водителю. Имеется три способа установки начала перерыва: временное окно, максимальное время в пути или максимальное время работы.

Перерывы временного окна не допускаются, если заказы или станции находятся в нескольких часовых поясах, и время не указано в формате UTC.

При указании перерывов вы можете задать свойства каждого из них, такие как имя или время обслуживания, с помощью атрибутов:

ObjectID

Управляемое системой поле ID.

RouteName

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

Данное поле является внешним ключом для поля Name в маршрутах, поэтому оно не может содержать значение null.

Precedence

Значения приоритета определяют последовательность перерывов для заданного маршрута. Перерывы со значением приоритета 1 происходят перед перерывами со значением 2 и так далее.

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

ServiceTime

Продолжительность перерыва. Это поле не может содержать значения NULL. Значение по умолчанию – 60.

Единица измерения для значения данного поля задается параметром time_units.

TimeWindowStart

Время начала временного окна перерыва. Необходимо указать как время начала, так и время окончания.

Если данное поле содержит значение, то значения полей MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть пустыми, и все остальные перерывы в анализе должны иметь значения null для MaxTravelTimeBetweenBreaks и MaxCumulWorkTime.

Ошибка возникнет во время решения, если на маршруте есть несколько перерывов с перекрывающимися временными окнами.

Поля временных окон в перерывах могут содержать значение только времени или даты и времени в поле даты и не могут быть целыми числами, представляющими миллисекунды с начала эры. Часовой пояс для полей временного окна задается с помощью параметра Использование часового пояса для полей времени. Если поле времени, например, TimeWindowStart, имеет значение только времени (например, 12:00 пополудни), то используется дата, которая была задана параметром Дата по умолчанию (default_date в Python). С помощью значений даты и времени (например, 7/11/2012 , 12:00 p.m.) можно задавать временные окна, которые могут охватывать два и более дней. Это удобно, если перерыв следует сделать в районе полуночи.

TimeWindowEnd

Время окончания временного окна перерыва. Необходимо указать как время начала, так и время окончания.

Если данное поле содержит значение, то значения полей MaxTravelTimeBetweenBreaks и MaxCumulWorkTime должны быть null, и все остальные перерывы в анализе должны иметь значения null для MaxTravelTimeBetweenBreaks и MaxCumulWorkTime.

MaxViolationTime

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

Нулевое значение указывает, что временное окно не может быть нарушено; то есть, это окно является жестким. Ненулевое значение указывает максимальное время опоздания. Например, перерыв может начаться через 30 минут после окончания выделенного ему временного окна, но штраф за опоздание рассчитывается в соответствии с параметром Значимость превышения временного окна.

Данное свойство может содержать пустые (null) значения. Значение null со значениями TimeWindowStart и TimeWindowEnd указывает на отсутствие ограничения допустимого времени нарушения. Если MaxTravelTimeBetweenBreaks или MaxCumulWorkTime имеют значение, MaxViolationTime должно быть null.

Единица измерения для значения данного поля задается параметром time_units.

MaxTravelTimeBetweenBreaks

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

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

Это поле предназначено для ограничения длительности вождения транспортного средства человеком, прежде чем потребуется перерыв. Например, если единица времени для анализа установлена на минуты и MaxTravelTimeBetweenBreaks имеет значение 120, водитель получит перерыв после двух часов вождения. Чтобы назначить второй перерыв еще через два часа вождения, для параметра MaxTravelTimeBetweenBreaks второго перерыва нужно указать значение 120.

Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd,MaxViolationTime и MaxCumulWorkTime должны быть null для успешного выполнения анализа.

Единица измерения для значения данного поля задается параметром time_units.

MaxCumulWorkTime

Максимальное время работы, которое может быть суммировано до начала перерыва. Время работы всегда накапливается с начала маршрута.

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

Это поле ограничения продолжительности работы человека, прежде чем потребуется перерыв. Например, если единица времени для анализа установлена на минуты, MaxCumulWorkTime имеет значение 120 и ServiceTime имеет значение 15, водитель получит 15-минутный перерыв после двух часов работы.

Продолжая рассматривать последний пример, предположим, что второй перерыв должен начаться через три часа работы. Для указания данного перерыва необходимо ввести значение 315 (пять часов и 15 минут) в значение MaxCumulWorkTime второго перерыва. Данное значение включает в себя MaxCumulWorkTime и ServiceTime предыдущего перерыва, а также три дополнительных часа работы до второго перерыва. Чтобы избежать преждевременных перерывов на максимальное рабочее время, помните, что они накапливают рабочее время с начала маршрута и что рабочее время включает время обслуживания на ранее посещенных станциях, заказы и перерывы.

Если данное поле содержит значение, то TimeWindowStart, TimeWindowEnd,MaxViolationTime и MaxTravelTimeBetweenBreaks должны быть null для успешного выполнения анализа.

Единица измерения для значения данного поля задается параметром time_units.

IsPaid

Булево значение, указывающее, будет ли перерыв оплачиваемым или нет. Установка значения данного поля равным 1 означает, что время, затраченное на перерыв, включается в расчет стоимости маршрута и определение сверхурочных. Значение 0 указывает на обратное. Значение по умолчанию равно 1.

Sequence

Означает последовательность перерывов на маршруте. Это поле может содержать значения null, из-за чего механизм решения назначает последовательность прерывания. Если значения последовательности заданы, они должны быть положительными и уникальными для каждого маршрута (распределенного среди посещений станций, заказов и перерывов), но не обязаны начинаться с 1 или быть последовательными.

Record Set
time_units

Единицы измерения времени для значений времени в анализе. Многие объекты и записи в анализе VRP содержат поля для записи значений времени, например ServiceTime для заказов и CostPerUnitTime для маршрутов. Для сокращения требований по вводу данных эти поля не должны включать в себя единицы. Все значения расстояния должны вводиться в одних и тех же единицах, и данный параметр используется для указания единиц этих значений.

  • SecondsЕдиница времени – секунды.
  • MinutesЕдиница времени – минуты.
  • HoursЕдиница времени – часы.
  • DaysЕдиница времени – дни.

Обратите внимание, что выходные поля на основании времени используют единицы, указанные данным параметром.

String
distance_units

Единицы измерения расстояния для всех полей на основании расстояния в анализе. Многие объекты и записи в анализе VRP содержат поля для записи значений расстояния, например, MaxTotalDistance и CostPerUnitDistance для маршрутов. Для сокращения требований по вводу данных эти поля не должны включать в себя единицы. Все значения расстояния должны вводиться в одних и тех же единицах, и данный параметр используется для указания единиц этих значений.

  • MetersЕдиницы расстояния – метры.
  • KilometersЕдиницы расстояния – километры.
  • FeetЕдиницы расстояния – футы.
  • YardsЕдиницы расстояния – ярды.
  • MilesЕдиницы расстояния – мили.
  • NauticalMilesЕдиницы расстояния – морские мили.

Обратите внимание, что выходные поля на основании расстояния используют единицы, определяемые данным параметром.

String
analysis_region
(Дополнительный)

Регион, в котором будет выполняться анализ. Если значение этого параметра не указано, инструмент автоматически вычислит имя региона на основе местоположения входных точек. Задание имени региона необходимо только в случае, если для входных данных не подходит автоматическое определение названия региона.

Чтобы задать регион используйте одно из следующих значений:

  • EuropeРегион анализа — Европа.
  • JapanРегион анализа — Япония.
  • KoreaРегион анализа — Корея.
  • MiddleEastAndAfricaРегион анализа — Ближний Восток и Африка.
  • NorthAmericaРегион анализа — Северная Америка.
  • SouthAmericaРегион анализа — Южная Америка.
  • SouthAsiaРегион анализа — Южная Азия.
  • ThailandРегион анализа — Таиланд.
Прежние версии:

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

  • Greece изменится на Europe
  • India изменится на SouthAsia
  • Oceania изменится на SouthAsia
  • SouthEastAsia изменится на SouthAsia
  • Taiwan изменится на SouthAsia

String
default_date
(Дополнительный)

Дата по умолчанию для значений полей времени, в которых указывается время в течение дня без указания даты. Вы можете найти эти поля времени в различных входных параметрах, таких как атрибуты ServiceTime в параметрах заказов и перерывов.

Date
uturn_policy
(Дополнительный)

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

  • ALLOW_UTURNSРазвороты разрешены везде. При разрешении U-образных разворотов транспортное средство может развернуться на любом соединении и продолжить движение по той же улице в обратную сторону. Это значение используется по умолчанию.
  • NO_UTURNSРазвороты запрещены во всех соединениях: псевдосоединениях, пересечениях, в тупиках. Однако имейте в виду, что развороты могут быть разрешены, даже при выборе этого параметра. Чтобы запретить развороты в точках инцидентов и на пунктах обслуживания, запретите развороты в поле CurbApproach.
  • ALLOW_DEAD_ENDS_ONLYРазвороты запрещены во всех соединениях, кроме тех, у которых имеется только один присоединенный объект улицы (тупик).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLYРазвороты запрещены в псевдосоединениях, где соединяются только две улицы, но разрешены на перекрестках и в тупиках. Это не позволяет выполнить разворот посередине одной улицы, которая состоит из двух объектов.

Значение, указанное вами для данного параметра, игнорируется, за исключением случаев, когда Режим передвижения задан как Пользовательский, который является значением по умолчанию.

String
time_window_factor
(Дополнительный)

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

  • HighБольшее значение придается своевременному прибытию на остановки, а не минимизации времени в пути. Например, этот параметр используют организации, осуществляющие срочные поставки или занимающиеся обслуживанием клиентов.
  • MediumВажность сбалансирована между минимизацией времени в пути и прибытием в пределах временных окон. Это значение используется по умолчанию.
  • LowБольшее значение придается минимизации времени в пути, а не своевременному прибытию на остановки. Этот параметр также можно использовать при накоплении отставания в обработке заказов. Для обработки как можно большего количества заказов в день и сокращения отставания можно выбрать данный параметр несмотря на то, что клиенты могут испытывать неудобства из-за позднего прибытия транспортных средств.
String
spatially_cluster_routes
(Дополнительный)

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

  • CLUSTER (True) – для всех маршрутов основные динамические точки создаются автоматически, а заказы, назначенные для отдельного маршрута, делятся на кластеры. Деление заказов на кластеры приводит к сохранению маршрутов в небольших областях и сокращает частоту пересечения линий различных маршрутов; при этом деление на кластеры также приводит к увеличению общего времени в пути.
  • NO_CLUSTER (False) – основные динамические точки не создаются. Выберите данный параметр, если указаны зоны маршрута.

Boolean
route_zones
(Дополнительный)

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

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

При указании зон маршрута вы должны установить свойства для каждой, например связанный с ней маршрут, используя следующие атрибуты:

ObjectID

Управляемое системой поле ID.

RouteName

Название маршрута, для которого применяется данная зона. Зона маршрута может иметь не более одного связанного маршрута. Это поле не может содержать значения null и является внешним ключом для поля Name в маршрутах.

IsHardZone

Двоичное значение, определяющее гибкую или жесткую зону маршрута. Значение Да (True) определяет жесткую зону; это означает, что заказ, выходящий за пределы полигона зоны маршрута, не может быть назначен этому маршруту. По умолчанию используется значение 1 (True). Значение Нет (False) (0) определяет, что такие заказы все еще могут быть назначены, но стоимость обслуживания заказа взвешена на основе функции евклидова расстояния от зоны маршрута. По сути, это означает, что по мере увеличения расстояния по прямой от гибкой зоны до заказа вероятность того, что заказ будет назначен маршруту, уменьшается.

Feature Set
route_renewals
(Дополнительный)

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

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

Вот некоторые правила и опции, которые следует иметь в виду:

  • Пункт догрузки/выгрузки (место пополнения загрузки) может отличаться от начальной и конечной станций.
  • У каждого маршрута может быть одно или несколько заранее определенных мест пополнения.
  • Место пополнения загрузки может использоваться на одном маршруте несколько раз.
  • В случаях наличия нескольких потенциальных мест пополнения загрузки для маршрута механизм расчета определяет ближайшее доступное из них.

При указании мест пополнения на маршруте вы должны установить свойства для каждого, например, название станции, где может произойти пополнение на маршруте, используя следующие атрибуты:

ObjectID

Управляемое системой поле ID.

DepotName

Имя станции, в которой происходит такое обновление. Это поле не может содержать значение null и является внешним ключом для поля Name в станциях.

RouteName

Название маршрута, к которому применяется данное обновление. Это поле не может содержать значение null и является внешним ключом для поля Name в маршрутах.

ServiceTime

Время обслуживания для обновления. Это поле может содержать пустое значение; пустое значение соответствует нулевому времени обслуживания.

Единица измерения для значения данного поля задается параметром time_units.

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

Record Set
order_pairs
(Дополнительный)

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

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

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

При указании пар заказов вы должны установить свойства для каждого, например, имена двух заказов, используя следующие атрибуты:

ObjectID

Управляемое системой поле ID.

FirstOrderName

Имя первого заказа в паре. Это поле является внешним ключом для поля Name в заказах.

SecondOrderName

Имя второго заказа в паре. Это поле является внешним ключом для поля Name в заказах.

Первый заказ в паре должен быть заказом сбора, это означает, что значение поля DeliveryQuantities для него null. Второй заказ в паре должен быть заказом доставки, это означает, что значение поля PickupQuantities для него null. Количество, которое собирается в первом заказе, должно соответствовать количеству, поставляемому во втором заказе. В отдельном случае оба заказа могут иметь нулевые количества для случаев, когда емкости не используются.

Заказы не загружаются и не разгружаются на станциях.

MaxTransitTime

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

Единицы измерения для значения данного поля задается свойством timeUnits объекта анализа.

Механизмом расчета может отслеживаться и учитываться лишнее время в пути (измеряемое с учетом непосредственного времени в пути между парами заказов). По этой причине вы можете указать механизму расчета VRP следующие подходы:

  • Минимизировать общее избыточное время нахождения в пути, вне зависимости от увеличения стоимости проезда для автопарка.
  • Найдите решение, которое уравновешивает общее превышение времени и расходы на поездку.
  • Игнорировать общее избыточное время нахождения в пути; вместо этого минимизировать стоимость проезда для автопарка.

Назначая уровень важности параметру excess_transit_factor, вы фактически выбираете один из этих трех подходов. Независимо от уровня значимости, механизм расчета всегда будет возвращать ошибку при превышении значения свойства MaxTransitTime.

Record Set
excess_transit_factor
(Дополнительный)

Задает уровни важности сокращения избыточного времени в пути для пар заказов. Избыточное время в пути – это затрачиваемое сверх необходимого время для перемещения от одного заказа к другому. Избыточное время в пути может быть вызвано перерывами в работе водителя или движением к промежуточным заказам и станциям.

  • HighБольшее значение придается уменьшению избыточного времени в пути между парными заказами за счет увеличения общей стоимости перемещения. Данная опция обычно используется при необходимости перевозки людей между парами заказов, и вы хотите сократить их время в пути. Это характеристика сервисов такси
  • MediumВажность сбалансирована между сокращением избыточного времени в пути и снижением общей стоимости решения. Это значение используется по умолчанию.
  • LowБольшее значение придается минимизации общей стоимости решения, независимо от избыточного времени в пути. Этот параметр обычно используется курьерской службой. Поскольку курьерская служба перевозит грузы, а не людей, ей не приходится заботиться о времени в пути. Эта опция позволяет курьерской службе обрабатывать парные заказы в должной очередности с минимальными общими затратами.
String
point_barriers
(Дополнительный)

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

Инструмент может накладывать до 250 ограничений, точек, добавленных в качестве барьеров.

При указании точечных барьеров вы можете задать свойства каждого из них, такие как имя или тип барьера, с помощью атрибутов:

Name

Имя барьера.

BarrierType

Указывает, ограничивает ли точечный барьер перемещение полностью или добавляет время или расстояние при его пересечении. Значение этого атрибута указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

  • 0 (Restriction) – запрещает прохождение через барьер. Барьер, действующий как запрещающий, рассматривается как ограничительный точечный барьер.

  • 2 (Added Cost) – прохождение через барьер увеличивает время в пути или расстояние на значение, указанное в полях Additional_Time, Additional_Distance или AdditionalCost. Этот тип барьера называется барьером дополнительной стоимости.

Additional_Time

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

Значение этого поля должно быть больше или равно нулю, а его единицы измерения должны соответствовать заданным в параметре Единицы измерения.

Additional_Distance

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

Значение этого поля должно быть больше или равно нулю, а его единицы измерения должны соответствовать заданным в параметре Единицы измерения.

AdditionalCost

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

FullEdge

Указывает, как ограничительные точечные барьеры применяются к элементам ребер во время анализа. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

  • (0) False – разрешает путь по ребру до барьера, но не через него. Это значение используется по умолчанию.
  • 1 (True) – Запрещает путь повсюду в связанном ребре.

CurbApproach

Указывает направление движения, на которое влияет барьер. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):

  • 0 (Любая сторона транспортного средства) – Барьер влияет на перемещение по ребру в обоих направлениях.
  • 1 (Правая сторона транспортного средства) – Распространяется только на те транспортные средства, для которых барьер находится с правой стороны по ходу движения. Барьер не влияет на автомобили, которые передвигаются по этому же ребру, но при этом барьер находится слева от них.
  • 2 (Левая сторона транспортного средства) – Распространяется только на те транспортные средства, для которых барьер находится с левой стороны по ходу движения. Барьер не распространяется на автомобили, которые передвигаются по этому же ребру, но при этом барьер находится справа от них.

Так как соединения являются точками и не имеют сторон, барьеры на соединениях влияют на все транспортные средства независимо от стороны подъезда.

Атрибут CurbApproach работает с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Сначала рассмотрим случай, когда пункт обслуживания располагается с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. От национального стандарта дорожного движения будет зависеть ваше решение, с какой из двух сторон подъехать к пункту обслуживания, т.е. должен ли он находиться с правой или левой стороны транспортного средства. Например, если необходимо подъехать к пункту обслуживания так, чтобы он не был отделен от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании.

Bearing

Направление, в котором движется точка. Единицами измерения являются градусы, отсчитывается по часовой стрелке от направления на истинный север. Это поле используется совместно с полем BearingTol.

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

Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка.

BearingTol

Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing находится в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра.

Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое местоположение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра.

NavLatency

Это поле может использоваться в процессе решения, только если в полях Bearing и BearingTol также есть значения; а ввод значения в поле NavLatency не является обязательным, даже когда в полях Bearing и BearingTol присутствуют значения. NavLatency указывает, сколько времени, как ожидается, пройдет с момента отправки информации GPS с движущегося транспортного средства на сервер и до момента получения обработанного маршрута навигационным устройством транспортного средства.

Единицы измерения NavLatency совпадают с единицами вашего атрибута импеданса.

Feature Set
line_barriers
(Дополнительный)

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

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

При указании линейных барьеров вы можете задать свойства имени и типа барьера для каждого из них с помощью атрибутов:

Name

Имя барьера.

Feature Set
polygon_barriers
(Дополнительный)

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

Сервис накладывает ограничение на количество улиц, которые вы можете ограничить с помощью параметра Полигональные барьеры. Хотя количество полигонов, которые вы можете указать в качестве полигональных барьеров, не ограничено, общее количество улиц, пересекаемых всеми полигонами, не может превышать 2 000.

При указании точечных барьеров вы можете задать свойства каждого из них, такие как имя или тип барьера, с помощью атрибутов:

Name

Имя барьера.

BarrierType

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

  • 0 (Restriction) – запрещает прохождение через любую часть барьера. Этот барьер называется запрещающим полигональным барьером, поскольку он запрещает перемещение по пересекаемым улицам. Одним из применений этого типа барьеров является моделирование наводнений, покрывающих улицы, и перемещение по ним становится невозможным.

  • 1 (Scaled Cost) – масштабирует стоимость (например, время в пути или расстояние), необходимую для проезда по лежащим ниже улицам, на коэффициент, указанный с помощью поля ScaledTimeFactor или ScaledDistanceFactor. Если улицы частично покрыты барьером, время в пути или расстояние будет соответственно разделены, а затем масштабированы. Например, коэффициент 0,25 означает, что ожидаемое время перемещения по соответствующим улицам в четыре раза меньше обычного. Коэффициент 3,0 означает, что ожидаемое время перемещения будет в три раза дольше обычного. Этот тип барьера называется полигональным барьером масштабируемой стоимости. Например, он может использоваться для моделирования погодных условий, из-за которых скорость перемещения в указанных регионах снижается.

ScaledTimeFactor

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

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

ScaledDistanceFactor

Это коэффициент, на который умножается длина пути по улицам, пересеченным барьером. Значение поля должно быть больше нуля.

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

ScaledCostFactor

Это коэффициент, на который умножается стоимость пути по улицам, пересеченным барьером. Значение поля должно быть больше нуля.

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

Feature Set
use_hierarchy_in_analysis
(Дополнительный)

Укажите, должна ли при нахождении наилучшего маршрута использоваться иерархия.

  • Отмечено (True) – использовать иерархию при поиске маршрутов. Когда используется иерархия, инструмент предпочитает улицы более высокого порядка, такие как скоростные автострады, улицам более низкого порядка, таким как местные дороги, и может использоваться для моделирования предпочтения водителей передвигаться по автострадам, а не местным дорогам, даже если это удлиняет путь. Особенно это относится к тем случаям, когда нужно определить маршруты к удаленным местам, поскольку водители предпочитают использовать в дальних поездках скоростные автострады без светофоров, перекрестков и поворотов. Использование иерархии ускоряет вычисления, особенно в случае междугородних поездок, поскольку инструмент выбирает лучший маршрут из сравнительно небольшого поднабора улиц.
  • Не отмечено (False) – не использовать иерархию при поиске маршрутов. Если иерархия не используется, инструмент перебирает при определении маршрута все улицы и не отдает предпочтение улицам более высокого порядка. Этот вариант обычно используется при нахождении коротких маршрутов в пределах города.

Инструмент автоматически возвращается к использованию иерархии, если расстояние по прямой между заказами, станциями или заказами и станциями превышает 50 миль, даже если этот параметр не отмечен (False).

Этот параметр игнорируется, если только для Режима передвижения не выбрано Пользовательский, которое является значением по умолчанию.

Boolean
restrictions
[restrictions,...]

Ограничения, которые должны учитываться инструментом при нахождении наилучшего маршрута.

Ограничение представляет собой предпочтение или требование во время поездки. В большинстве случаев ограничения запрещают использование тех или иных дорог. Например, использование ограничения Избегать платных дорог приведет к тому, что платные дороги будут использоваться, только если это абсолютно необходимо для подъезда к инциденту или пункту обслуживания. Height Restriction позволяет прокладывать маршрут в обход всех объектов с пролетами, меньшими, чем высота транспортного средства. Если транспортное средство перевозит коррозионные вещества, применение ограничения Any Hazmat Prohibited (Вредные вещества запрещены) предотвратит перевозку таких материалов по тем дорогам, по которым это запрещено.

Примечание:

Значения, предоставляемые вами для данного параметра, игнорируются за исключением случаев, когда Режим передвижения задан как Пользовательский.

Примечание:

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

Примечание:

Некоторые ограничения поддерживаются только в определенных странах; их доступность по регионам указана в списке ниже. Кроме доступности ограничений по регионам, можно проверить его доступность в определенной стране по таблице в разделе Список стран Покрытия сетевого анализа. Если для страны указано значениеYes в столбце Атрибуты логистики, то будут проверены ограничения, которые есть для всего региона, в котором находится страна. Если вы задаете имена ограничений, которые недоступны в стране, где находятся инциденты, сервис игнорирует их. Сервис также игнорирует ограничения, где значение параметра Использование ограничений находится в пределах от 0 до 1 (см. параметр Значение параметра атрибутов). Он запрещает все ограничения, чье значение параметра Использование ограничения больше 0.

Сервис поддерживает следующие ограничения:

  • Any Hazmat ProhibitedВ маршрут не включаются дороги, по которым запрещена перевозка любых видов опасных веществ.Доступность: Выберите страны в Северной Америке и Европе
  • Avoid Carpool RoadsВ маршрут не будут включаться дороги, предназначенные исключительно для пассажирских перевозок (автобусы и т.д.).Доступность: Все страны
  • Avoid Express LanesВ маршрут не будут включаться дороги, предназначенные для скоростного передвижения.Доступность: Все страны
  • Avoid FerriesВ маршруте не будут использоваться паромные переправы.Доступность: Все страны
  • Avoid GatesВ маршрут не будут включаться дороги, на которых имеются ворота для въезда по пропуску или охраняемые въезды.Доступность: Все страны
  • Avoid Limited Access RoadsВ маршрут не будут включаться дороги с ограниченным доступом.Доступность: Все страны
  • Avoid Private RoadsВ маршрут не будут включаться частные дороги.Доступность: Все страны
  • Avoid Roads Unsuitable for PedestriansВ маршрут не будут включаться дороги, не предназначенные для движения по ним пешеходов.Доступность: Все страны
  • Avoid StairwaysВ маршрут для пешехода не будут включаться все лестницы.Доступность: Все страны
  • Avoid Toll RoadsВ маршруте для легковых автомобилей не будут использоваться платные дороги.Доступность: Все страны
  • Avoid Toll Roads for TrucksВ маршруте для легковых автомобилей не будут использоваться платные дороги.Доступность: Все страны
  • Avoid Truck Restricted RoadsВ результатах будут отсутствовать соответствующие дороги если только на них не находится точка доставки.Доступность: Все страны
  • Avoid Unpaved RoadsВ маршрут не будут включаться дороги без покрытия (например, грунтовые, с гравийным покрытием и т.д.).Доступность: Все страны
  • Axle Count RestrictionВ маршрут не будут включаться дороги, на которых запрещены грузовики с указанным числом осей. Число осей задается параметром Number of Axles.Доступность: Выберите страны в Северной Америке и Европе
  • Driving a BusВ маршрут не будут включаться дороги, по которым запрещено перемещение на автобусах. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • Driving a TaxiВ маршрут не будут включаться дороги, по которым запрещено перемещение на такси. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • Driving a TruckВ маршрут не будут включаться дороги, по которым запрещено перемещение на грузовиках. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • Driving an AutomobileВ маршрут не будут включаться дороги, по которым запрещено перемещение на автомобилях. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • Driving an Emergency VehicleВ маршрут не будут включаться дороги, по которым запрещено перемещение аварийно-спасательных автомобилей. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • Height RestrictionВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей больше разрешенной высоты. Высота транспортного средства задается параметром Vehicle Height (в метрах).Доступность: Выберите страны в Северной Америке и Европе
  • Kingpin to Rear Axle Length RestrictionВ маршрут не будут включаться дороги, по которым запрещено движение всех грузовиков с шириной заноса задней оси больше разрешенной. Это значение задается параметром Vehicle Kingpin to Rear Axle Length (метры).Доступность: Выберите страны в Северной Америке и Европе
  • Length RestrictionВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей больше разрешенной длины. Длина транспортного средства задается параметром Vehicle Length (в метрах).Доступность: Выберите страны в Северной Америке и Европе
  • Preferred for PedestriansВ маршрут будут предпочтительно включаться дороги, подходящие для передвижения пешеходов.Доступность: Выберите страны в Северной Америке и Европе
  • Riding a MotorcycleВ маршрут не будут включаться дороги, по которым запрещено перемещение на мотоциклах. Использование этого ограничения также позволяет учитывать в маршруте дороги с односторонним движением.Доступность: Все страны
  • Roads Under Construction ProhibitedВ маршрут не будут включаться ремонтируемые дороги.Доступность: Все страны
  • Semi or Tractor with One or More Trailers ProhibitedВ маршрут не будут включаться дороги, на которых запрещено движение тягачей с одним или более трейлерами.Доступность: Выберите страны в Северной Америке и Европе
  • Single Axle Vehicles ProhibitedВ маршрут не будут включаться дороги, на которых запрещены одноосные транспортные средства.Доступность: Выберите страны в Северной Америке и Европе
  • Tandem Axle Vehicles ProhibitedВ маршрут не будут включаться дороги, на которых запрещены транспортные средства со сдвоенными осями.Доступность: Выберите страны в Северной Америке и Европе
  • Through Traffic ProhibitedВ результаты не будут включаться дороги, по которым запрещен сквозной проезд.Доступность: Все страны
  • Truck with Trailers RestrictionВ маршрут не будут включаться дороги, на которых запрещены грузовики с прицепом. Число прицепов задается параметром ограничений Number of Trailers on Truck.Доступность: Выберите страны в Северной Америке и Европе
  • Use Preferred Hazmat RoutesМаршрут пройдет по дорогам, которые предназначены для перевозки опасных веществ.Доступность: Выберите страны в Северной Америке и Европе
  • Use Preferred Truck RoutesМаршруты будут, по возможности, проходить по дорогам, которые предназначены для грузовиков, например, по дорогам, которые являются частью национальной дорожной сети, как указано в National Surface Transportation Assistance Act для США, или по дорогам, которые предназначены для грузовиков в штатах или провинциях, или по дорогам, которые предпочитают водители.Доступность: Выберите страны в Северной Америке и Европе
  • WalkingВ маршрут не будут включаться дороги, по которым запрещено перемещение пешеходов.Доступность: Все страны
  • Weight RestrictionВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей больше разрешенной массы. Вес транспортного средства задается параметром Vehicle Weight (в килограммах).Доступность: Выберите страны в Северной Америке и Европе
  • Weight per Axle RestrictionВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей с нагрузкой на ось больше разрешенной. Нагрузка на ось задается параметром Vehicle Weight per Axle (в килограммах).Доступность: Выберите страны в Северной Америке и Европе
  • Width RestrictionВ маршрут не будут включаться дороги, по которым запрещено движение автомобилей больше разрешенной ширины. Ширина транспортного средства задается параметром Vehicle Width (в метрах).Доступность: Выберите страны в Северной Америке и Европе
String
attribute_parameter_values
(Дополнительный)

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

Примечание:

Значения, предоставляемые вами для данного параметра, игнорируются за исключением случаев, когда Режим передвижения задан как Пользовательский.

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

  • AttributeName – имя ограничения.
  • ParameterName – имя параметра, связанного с ограничением. В зависимости от целей ограничения, оно может иметь одно или несколько значений поля ParameterName.
  • ParameterValue- значение для ParameterName, используемое инструментом при оценке ограничения.

Параметр Значения Параметра атрибутов зависит от параметра Ограничения. Поле ParameterValue применяется, только если в качестве значения параметра Ограничения указано имя ограничения.

В параметре Значения Параметра атрибутов каждое ограничение (указанное, как AttributeName) содержит значение поля ParameterName, Использование ограничения, определяющее запрет, нежелательность или предпочтительность использования дорог, для которых установлено ограничение, а также степень нежелательности или предпочтительности использования дорог. Поле Использование ограничения ParameterName может иметь одно из следующих строковых значений или эквивалентных числовых значений, указанных в скобках:

  • PROHIBITED (-1) – передвижение по дорогам, имеющим это ограничение, полностью запрещено.
  • AVOID_HIGH (5) – Крайне маловероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • AVOID_MEDIUM (2) – маловероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • AVOID_LOW (1.3) – достаточно маловероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • PREFER_LOW (0.8) – достаточно вероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • PREFER_MEDIUM (0,5) – вероятно, что инструмент включит в маршрут дороги с этим ограничением.
  • PREFER_HIGH (0,2) – Крайне вероятно, что инструмент включит в маршрут дороги с этим ограничением.

Как правило, для поля Использование ограничения используется значение по умолчанию, PROHIBITED, если ограничение связано с характеристиками транспортного средства, например, с его высотой. Однако в некоторых случаях значение поля Использование ограничения будет зависеть от ваших предпочтений при выборе маршрута. Например, для ограничения Избегать платных дорог параметр Использование ограничения имеет по умолчанию значение AVOID_MEDIUM. Это означает, что, при наличии данного ограничения инструмент будет избегать использования платных дорог при построении маршрута. Значение AVOID_MEDIUM также указывает, насколько важно избегать использования платных дорог при поиске лучшего маршрута: это ограничение имеет средний приоритет. При выборе AVOID_LOW исключение платных дорог из маршрута будет иметь меньшее значение, а при выборе AVOID_HIGH – большее, поэтому сервис будет создавать более длинные маршруты, чтобы по возможности избежать использования платных дорог. При выборе PROHIBITED использование платных дорог будет полностью запрещено, и сервис не сможет включать их даже частично в маршрут. Имейте в виду, что для некоторых целью является избегание или запрет платных дорог и избежание платы за проезд. И наоборот, другие предпочитают ездить по платным дорогам, потому что движение без пробок для них более ценно, чем деньги, потраченные на платные дороги. В последнем случае для параметра Использование ограничения следует выбрать значения PREFER_LOW, PREFER_MEDIUM или PREFER_HIGH. Чем выше предпочтительность, тем в большей степени маршрут будет проходить по дорогам с этим ограничением.

Record Set
populate_route_lines
(Дополнительный)

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

  • Отмечено (True) – выходные маршруты будут точно соответствовать геометрии уличной сети.
  • Не отмечено (False) – геометрия для выходных маршрутов не генерируется, при этом маршруты приводятся в виде таблицы. Вы не сможете создавать путевые листы, если линии маршрута не создаются.

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

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

Boolean
route_line_simplification_tolerance
(Дополнительный)

Степень упрощения геометрии выходных линий для маршрутов и направлений.

Значение, указанное для данного параметра, игнорируется, за исключением случаев, когда Режим передвижения задан как Пользовательский, который является значением по умолчанию.

Инструмент игнорирует этот параметр, если параметр populate_route_lines отключен (False).

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

Linear Unit
populate_directions
(Дополнительный)

Укажите, должен ли инструмент создавать путевой лист для каждого маршрута.

  • Отмечено (True в Python) – будет создан путевой лист, настроенный в соответствии со значениями параметров Язык путевого листа, Имя стиля путевого листа и Единицы расстояния путевого листа.
  • Не отмечено (False в Python) – путевой лист не создается, и инструмент возвращает пустой слой Directions.

Boolean
directions_language
(Дополнительный)

Язык, на котором должен создаваться путевой лист.

Этот параметр используется, только если параметр Заполнить путевой лист отмечен (True в Python).

Значениями параметра могут быть следующие двух- или пятисимвольные коды языка:

  • ar - Арабский
  • bg - Болгарский
  • bs - Боснийский
  • ca - Каталонский
  • cs - Чешский
  • da -Датский
  • de - Немецкий
  • el - Греческий
  • en - Английский
  • es - Испанский
  • et - Эстонский
  • fi - Финский
  • fr - Французский
  • he - Иврит
  • hr - Хорватский
  • hu - Венгерский
  • id - Индонезийский
  • it - Итальянский
  • ja - Японский
  • ko - Корейский
  • lt - Литовский
  • lv - Латвийский
  • nb - Норвежский
  • nl - Нидерландский
  • pl - Польский
  • pt-BR - Португальский (Бразильский)
  • pt-PT - Португальский (Португалия)
  • ro - Румынский
  • ru - Русский
  • sk - Словацкий
  • sl - Словенский
  • sr - Сербский
  • sv - Шведский
  • th - Тайский
  • tr - Турецкий
  • uk - Украинский
  • vi - Вьетнамский
  • zh-CN - Китайский (Китай)
  • zh-HK - Китайский (Гонконг)
  • zh-TW - Китайский (Тайвань)

Сначала инструмент ищет точное соответствие для заданного языка, включая любую локализацию. Если не нашлось точного соответствия, будет выполнена попытка найти соответствие в пределах языковой семьи. Если соответствие не будет найдено, инструмент возвращает путевой лист на английском языке, являющемся языком по умолчанию. К примеру, если установлен язык путевого листа es-MX (мексиканский испанский), инструмент возвратит путевой лист на испанском, так как поддерживает код языка es и не поддерживает es-MX.

Внимание:

Если язык поддерживает локализацию например, Португальский Бразилия (pt-BR) и Европейский португальский (pt-PT), нужно задать языковую семью и локализацию. Если вы зададите только языковую семью, инструмент не найдет соответствие языковой семье и возвратит путевой лист на используемом по умолчанию английском языке. К примеру, если задан язык путевого листа pt, инструмент выдаст путевой лист на английском, поскольку не поймет, нужно ли выдавать его на языке pt-BR или на языке pt-PT.

String
directions_style_name
(Дополнительный)

Укажите имя стиля форматирования для путевого листа. Этот параметр используется, только если параметр Заполнить путевой лист отмечен (True в Python).

  • NA DesktopЭтот стиль будет представлять готовый для печати путевой лист со всеми поворотами.
  • NA NavigationЭтот стиль будет представлять путевой лист со всеми поворотами для автомобильного навигационного устройства.
String
travel_mode
(Дополнительный)

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

Для получения списка имен поддерживаемых режимов передвижения запустите инструмент Получить режимы передвижения из набора инструментов Утилиты, используя то же подключение к ГИС-серверу, которое использовалось для доступа к этому инструменту. Инструмент Получить режимы передвижения добавляет в приложение таблицу Поддерживаемые режимы передвижения. В качестве входных данных можно задать любое значение в поле Travel Mode Name таблицы Поддерживаемые режимы передвижения. Вы также можете указать в качестве входного значение из поля Travel Mode Settings. Это ускоряет выполнение инструмента, поскольку инструменту не нужно находить настройки на основе имени режима перемещения.

Пользовательский (значение по умолчанию) – позволяет настроить собственный режим передвижения при помощи параметров этого режима (Развороты в соединениях, Использовать иерархию, Ограничения, Значения Параметров атрибутов и Импеданс). Значения по умолчанию для модели параметров пользовательского режима передвижения на легковом автомобиле. Также можно выбрать Пользовательский и задать указанные выше параметры пользовательского режима передвижения для моделирования быстрой пешей ходьбы или передвижения грузового автомобиля с определенными габаритными (по высоте) и весовыми характеристиками, загруженного определенным опасным грузом. Можете попробовать различные настройки для получения нужных вам результатов анализа. После определения настроек анализа вам необходимо связаться с администратором вашей организации и сохранить эти настройки как часть нового или существующего режима передвижения, чтобы любой пользователь вашей организации мог перезапустить анализ с такими же настройками.

Внимание:

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

String
impedance
(Дополнительный)

Задайте импеданс – значение, представляющее затраты или стоимость перемещения вдоль сегментов дорог или других частей транспортной сети.

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

Расстояние перемещения – это импеданс; длина дороги в километрах рассматривается как импеданс. В этом смысле расстояние аналогично для всех режимов – километр останется километром и для пешехода, и для машины. (Что может измениться, так это пути, по которым разрешено перемещаться в различных режимах, что влияет на расстояние между точками и моделируется настройками режима передвижения.)

Внимание:

Значение, указанное вами для данного параметра, игнорируется, за исключением случаев, когда Режим передвижения задан как Пользовательский, который является значением по умолчанию.

  • TravelTimeИспользуются данные исторического трафика или трафика в режиме реального времени. Эта опция применяется для моделирования времени, которое требуется автомобилю для передвижения по дорогам в определенное время суток, при использовании данных текущего трафика, где это доступно. При использовании этой опции вы можете дополнительно указать параметр TravelTime::Vehicle Maximum Speed (km/h), чтобы задать физическое ограничение скорости движения транспортного средства.
  • MinutesДанные о трафике в режиме реального времени не используются, но при этом используются средние исторические скорости передвижения автомобилей на данном участке.
  • TruckTravelTimeИспользуются данные исторического трафика или трафика в режиме реального времени, но скорость адаптирована в соответствии с максимальной разрешенной скоростью для грузовиков. Это применяется для моделирования времени, которое требуется грузовику для передвижения по дорогам в определенное время суток. При использовании этой опции вы можете дополнительно указать параметр TravelTime::Vehicle Maximum Speed (km/h), чтобы задать физическое ограничение скорости движения транспортного средства.
  • TruckMinutesНе используется трафик в реальном времени, расчет выполняется на основе самой маленькой исторической средней скорости автомобилей и максимально допустимой скорости, заданной на каждом участке дорог для грузовиков.
  • WalkTimeПо умолчанию задает скорость передвижения пешехода равной 5 км/ч, но это значение можно изменить с помощью атрибутивного параметра WalkTime::Walking Speed (km/h).
  • TimeAt1KPHПо умолчанию скорость равна 1 км/ч на всех дорогах и путях. Эту скорость нельзя изменить с помощью атрибутивных параметров.
  • Drive TimeМоделируется время в пути для автомобиля. Это время является динамичным и изменяется в зависимости от транспортных потоков, если доступны данные трафика Это значение используется по умолчанию.
  • Truck TimeМоделируется время в пути для грузовика. Это время является статичным для каждой дороги и не зависит от трафика.
  • Walk TimeМоделируется время в пути для пешехода.

При выборе импеданса на основе времени, такого как TravelTime, TruckTravelTime, Minutes, TruckMinutes или WalkTime, параметру Единицы граничных значений необходимо задать значение на основе времени. При выборе импеданса на основе расстояния, такого как Мили или Километры, Единицы граничных значений должны быть основаны на расстоянии.

Прежние версии:

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

String
time_zone_usage_for_time_fields
(Дополнительный)

Указывает часовой пояс входных полей даты-времени, поддерживаемых инструментом. Этот параметр указывает часовой пояс для следующих полей: TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, TimeWindowEnd2, InboundArriveTime и OutboundDepartTime для заказов. TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 и TimeWindowEnd2 для станций. EarliestStartTime и LatestStartTime для маршрутов. TimeWindowStart и TimeWindowEnd для перерывов.

  • GEO_LOCALЗначения даты-времени, связанные с заказами или станциями, приводятся в том же часовом поясе, где находятся заказы и станции. Для маршрутов значения даты-времени основываются на часовом поясе, в котором расположено станция начала маршрута. Если у маршрута нет исходной станции, то все заказы и станции на всех маршрутах должны быть в одном часовом поясе. Для остановок значения даты-времени основываются на часовом поясе маршрута. Например, если ваша станция находится в районе с восточным стандартным временем и для него заданы первые значения времени (указаны как TimeWindowStart1 и TimeWindowEnd1) 08:00 и 10:00, то значениями временных окон будут считаться 08:00 и 10:00 по восточному стандартному времени.
  • UTCЗначения даты-времени, связанные с заказами или станциями, находятся в универсальном координированном времени UTC, и не основаны на часовом поясе, где находятся заказы или станции. Например, если станция расположена в зоне восточного стандартного времени и имеет значение первого временного окна (указано как TimeWindowStart1 и TimeWindowEnd1) 08:00 и 17:00, то значениями временных окон будут считаться 12:00 и 21:00 восточное стандартное время, при этом предполагается, что восточное стандартное время является летним временем.
  • GEO_LOCALGEO_LOCAL
  • UTCUTC

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

String
save_output_layer
(Дополнительный)

Указывает, будут ли параметры анализа сохранены в виде файла слоя сетевого анализа. Вы не можете работать с этим файлом напрямую, даже если вы откроете его в приложении ArcGIS Desktop, например, в ArcMap. Это предназначено для отправки в техническую поддержку Ecri для диагностики качества результатов, получаемых инструментом.

  • Отмечено (True) – сохранить файл сетевого анализа. Файл загружается в временную директорию вашего компьютера. В ArcGIS Pro местоположение загруженного файла можно определить, просмотрев значение параметра Выходной слой сетевого анализа в соответствующей строке отчета о выполнении инструмента в истории геообработки вашего проекта. В ArcMap местоположение загруженного файла можно определить с помощью опции Копировать местоположение ниспадающего меню параметра Выходной слой сетевого анализа в соответствующей строке отчета о выполнении инструмента в окне Результаты геообработки.
  • Не отмечено (False) - файл слоя сетевого анализа не будет сохранен. Используется по умолчанию.

Boolean
overrides
(Дополнительный)

Примечание:

Этот параметр предназначен только для внутреннего использования.

String
save_route_data
(Дополнительный)

Указывает, будут ли выходные данные включать файл .zip, содержащий базу геоданных, в которой хранятся входные и выходные данные анализа в формате, который может быть использован для дальнейшей публикации слоев маршрутов на ArcGIS Online или Portal for ArcGIS.

  • Отмечено (True) – сохранить данные маршрута как файл .zip. Файл загружается в временную директорию вашего компьютера. В ArcGIS Pro местоположение загруженного файла можно определить, просмотрев значение параметра Выходные данные маршрута в соответствующей строке отчета о выполнении инструмента в истории геообработки в вашем проекте. В ArcMap местоположение загруженного файла можно определить с помощью опции Копировать местоположение ниспадающего меню параметра Выходные данные маршрута в соответствующей строке отчета о выполнении инструмента в окне Результаты геообработки.

  • Не отмечено (False) – данные маршрута не сохранены. Используется по умолчанию.

Boolean
time_impedance
(Дополнительный)

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

Примечание:
Если импеданс для режима перемещения, указанный с помощью параметра Импеданс, основан на времени, значения параметров Импеданс времени и Импеданс должны быть идентичны. В противном случае сервис выдаст ошибку.
  • MinutesИмпедансом времени будут минуты.
  • TravelTimeИмпедансом времени будет время пути.
  • TimeAt1KPHИмпедансом времени будет время при одном км в час.
  • WalkTimeИмпедансом времени будет время пешком.
  • TruckMinutesИмпедансом времени будут минуты на грузовике.
  • TruckTravelTimeИмпедансом времени будет время пути на грузовике.
String
distance_impedance
(Дополнительный)

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

Примечание:
Если импеданс для режима перемещения, указанный с помощью параметра Импеданс, основан на расстоянии, значения параметров Импеданс расстояния и Импеданс должны быть идентичными. В противном случае сервис выдаст ошибку.
  • MilesИмпедансом расстояния будут мили.
  • KilometersИмпедансом расстояния будут километры
String
populate_stop_shapes
(Дополнительный)

Определяет, будет ли инструмент создавать формы для назначенных и неназначенных выходных остановок.

  • Отмечено (True) – назначенные и не назначенные выходные остановки создаются как точечные объекты. Это может быть полезно для визуализации того, какие остановки назначены маршрутам, а какие не могут быть назначены каким-либо маршрутам.

  • Не отмечено (False) – назначенные и не назначенные выходные остановки создаются в виде таблиц и не будут иметь форм. Используется по умолчанию. Используйте эту опцию, если вам не нужно, чтобы ваше приложение визуализировало выходные остановки и могло работать только с атрибутами остановок.

Boolean
output_format
(Дополнительный)

Задает формат, в котором будут возвращены выходное объекты.

  • Feature SetВыходные объекты возвращаются в виде классов объектов и таблиц. Это значение по умолчанию
  • JSON FileВыходные объекты возвращаются в виде сжатого файла, содержащего представление JSON выходных данных. Если выбрана эта опция, на выходе будет один файл (с расширением .zip), содержащий один или несколько файлов JSON (с расширением .json) - для каждого созданного сервисом выходного набора.
  • GeoJSON FileВыходные объекты возвращаются в виде сжатого файла, содержащего представление JSON выходных данных. Если выбрана эта опция, на выходе будет один файл (с расширением .zip), содержащий один или несколько файлов GeoJSON (с расширением .geojson) - для каждого созданного сервисом выходного набора.

Если указан формат выхода на основе файла, такой как файл JSON или файл GeoJSON, выходные данные не будут добавлены к отображению, потому что приложение, такое как ArcMap или ArcGIS Pro, не может отобразить содержание файла результатов. Напротив, файл загружается в временную директорию вашего компьютера. В ArcGIS Pro местоположение загруженного файла можно определить, просмотрев значение параметра Выходной результирующий файл в соответствующей строке отчета о выполнении инструмента в истории геообработки вашего проекта. В ArcMap местоположение загруженного файла можно определить с помощью опции Копировать местоположение ниспадающего меню параметра Выходной результирующий файл в соответствующей строке отчета о выполнении инструмента в окне Результаты геообработки.

String
ignore_invalid_order_locations
(Дополнительный)

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

  • Отмечено (True) – операция построения проигнорирует все неправильные заказы и выдаст решение, если при этом не возникнут какие-нибудь еще ошибки. Если вам нужно быстро создать маршруты и передать их водителям, просто проигнорируйте некорректные заказы, постройте маршруты и отправьте их водителям. После этого решите проблемы с неправильным размещением заказов и включите их в анализ VRP для следующего рабочего дня или смены.

  • Не отмечено (False) – решения не будет при наличии недействительных заказов. Некорректный заказ – это заказ, который невозможно достичь при расчете VRP. Заказ может быть недоступен по различным причинам, в том числе когда он может быть расположен на запрещенном для проезда элементе сети; не расположен в сети вообще; размещен в несвязанном с другими сегменте сети.

Boolean
locate_settings
(Дополнительный)

Используйте этот параметр для указания настроек, влияющих на расположение входных данных, например таких, как максимальное расстояние поиска, используемое при поиске входных данных в сети, или какие сетевые источники используются для поиска местоположений.

Дополнительные сведения о способе размещения входных данных

Объект JSON локатора имеет следующие свойства:

  • tolerance и toleranceUnits — Позволяет контролировать максимальное расстояние поиска при поиске входных данных. Если на этом расстоянии не будет найдено допустимого сетевого положения, входной объект будет считаться не размещенным. Малый допуск поиска снижает вероятность размещения не на той улице, но увеличивает вероятность того, что вы не найдете ни одного допустимого сетевого положения. Значение параметра toleranceUnits может быть указано как одно из следующих значений:
    • esriCentimeters
    • esriDecimalDegrees
    • esriDecimeters
    • esriFeet
    • esriInches
    • esriIntFeet
    • esriIntInches
    • esriIntMiles
    • esriIntNauticalMiles
    • esriIntYards
    • esriKilometers
    • esriMeters
    • esriMiles
    • esriMillimeters
    • esriNauticalMiles
    • esriYards
  • sources — Позволяет контролировать, какой сетевой источник может использоваться для определения местоположения. Например, вы можете настроить анализ для размещения входных объектов на улицах, но не на тротуарах. Список возможных источников для поиска местоположений для размещения зависит от набора сетевых данных, на который ссылается этот сервис. Для размещения используются только те источники, которые присутствуют в массиве источников. Источники указываются как массивы объектов, каждый из которых имеет следующие свойства:
    • name — Имя класса объектов сетевого источника, который можно использовать для размещения входных данных
  • allowAutoRelocate — Позволяет управлять тем, могут ли входные данные с существующими полями сетевого местоположения при выполнении решения автоматически перемещаться, чтобы обеспечить действительные, маршрутизируемые поля местоположения для анализа. Если значение true, точки, расположенные на ограниченных элементах сети, и точки, на которые влияют барьеры, будут перемещены к ближайшему маршрутизируемому положению. Если значение false, поля сетевых местоположений будут использоваться как есть, даже если точки являются недостижимыми и могут привести к сбою расчета. Даже если значение равно false, входные данные без полей местоположений или с незаполненными полями местоположений будут размещены в процессе выполнения решения.
Примечание:
В настоящее время вы не можете указать разные имена источников для массива sources. Кроме того, значение allowAutoRelocate всегда задано как true, поскольку сервис не поддерживает поля местоположения.

Значение параметра указывается как объект JSON. Объект JSON позволяет вам указать локатор JSON для всех входных объектов анализа, или вы можете указать замещение для конкретных входных данных. Замещение позволяет вам иметь разные настройки для каждых входных данных анализа. Например, вы можете запретить размещение остановок на съездах с шоссе и разрешить размещение точечных ограждений на съездах с шоссе. При указании Locate_Settings JSON необходимо указать свойства tolerance, toleranceUnits и allowAutoRelocate. Если вам нужно предоставить другой JSON локатора для определенного входного класса, вам необходимо включить свойство замещения для этих входных данных. Имя свойства должно совпадать с именем входного параметра. JSON локатора для определенных входных данных не обязательно должен включать все свойства; вам нужно включить только те свойства, которые отличаются от свойств JSON локатора по умолчанию.

String

Производные выходные данные

ИмяОписаниеТип данных
out_unassigned_stops
Примечание:

Значение по умолчанию для этого параметра можно получить из json ресурса сервиса. Добавьте ?token=<yourToken>&f=pjson к URL-адресу сервиса, чтобы получить доступ к json ресурса сервиса.

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

Feature Set
out_stops

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

Feature Set
out_routes

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

Feature Set
out_directions

Обеспечивает доступ к пошаговому путевому листу для каждого маршрута.

Feature Set
solve_succeeded

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

Boolean
out_network_analysis_layer

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

File
out_route_data

Файл .zip, содержащий всю информацию для определенного маршрута.

File
out_result_file

Файл .zip, содержащий результаты анализа с одним или несколькими файлами для каждого выхода. Формат отдельного файла задается параметром Выходной формат.

File
output_network_analysis_layer_package

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

File
usage_cost

Этот параметр показывает кредиты, использованные в ходе анализа.

Примечание:

Каждый анализ может генерировать разное количество оплачиваемых объектов и, следовательно, использовать разное количество кредитов. Если сервис не может определить число кредитов, то параметр usage_cost возвращает значение -1 для credits.

JSON

Пример кода

SolveVehicleRoutingProblem, пример 1 (автономный скрипт)

Следующий скрипт Python демонстрирует, как использовать сервис Solve Vehicle Routing Problem в скрипте.

"""This example shows how to obtain the schema for the inputs, populate the inputs,
excute the tool and save the results.
"""

import sys
import time
import arcpy

# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"

vrp_service = "https://logistics.arcgis.com/arcgis/services;World/VehicleRoutingProblem;{0};{1}".format(username, password)

# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(vrp_service)
vrp_tool_name = "SolveVehicleRoutingProblem_VehicleRoutingProblem"

# Set the variables to store results from the tool. Overwrite the results if they already exist.
arcpy.env.overwriteOutput = True
output_routes = "C:/data/Results.gdb/Routes"
assigned_orders = "C:/data/Results.gdb/AssignedOrders"
unassigned_orders = "C:/data/Results.gdb/UnassignedOrders"

# Get the schema for input orders, depots and routes
input_orders = arcpy.GetParameterValue(vrp_tool_name, 0)
input_depots = arcpy.GetParameterValue(vrp_tool_name, 1)
input_routes = arcpy.GetParameterValue(vrp_tool_name, 2)

# Create two orders as input. The coordinate values are in WGS84 spatial reference.
# AssignmentRule for orders is 3 which specifies that the tool should assign a new
# sequence and route for every order.
orders = [(-122.51, 37.7724), (-122.4889, 37.7538)]
sr = arcpy.SpatialReference(4326)
with arcpy.da.InsertCursor(input_orders, ("SHAPE@", "Name", "AssignmentRule")) as cursor:
    for i, order in enumerate(orders):
        order_shape = arcpy.PointGeometry(arcpy.Point(order[0], order[1]), sr)
        row = (order_shape, "O{}".format(i + 1), 3)
        cursor.insertRow(row)

# Create one depot as input. The coordinate values are in WGS84 spatial reference
depots = [(-122.3943, 37.7967)]
with arcpy.da.InsertCursor(input_depots, ("SHAPE@", "Name")) as cursor:
    for i, depot in enumerate(depots):
        depot_shape = arcpy.PointGeometry(arcpy.Point(depot[0], depot[1]), sr)
        row = (depot_shape, "D{}".format(i + 1))
        cursor.insertRow(row)

# Create one route as input. Ensure that the StartDepotName and EndDepotName fields on 
# routes has same value as the Name field on input depots. AssignmentRule for routes
# is 1 which specifies that the tool must include the route.
# CostPerUnitTime and MaxOrderCount are fields that cannot have null values if the route
# is to be considered as a valid route.  
with arcpy.da.InsertCursor(input_routes, ("Name", "StartDepotName",
                                          "EndDepotName", "AssignmentRule",
                                          "CostPerUnitTime", "MaxOrderCount")) as cursor:
    row = ("R1", "D1", "D1", 1, 1, 10)
    cursor.insertRow(row)

# Call the tool
result = arcpy.VehicleRoutingProblem.SolveVehicleRoutingProblem(input_orders, input_depots, input_routes)
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))

# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
    time.sleep(1)

# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
    arcpy.AddError("An error occured when running the tool")
    arcpy.AddError(result.getMessages(2))
    sys.exit(2)
elif result_severity == 1:
    arcpy.AddWarning("Warnings were returned when running the tool")
    arcpy.AddWarning(result.getMessages(1))

# Save the output routes and orders to a local geodatabase
result.getOutput(0).save(unassigned_orders)
result.getOutput(1).save(assigned_orders)
result.getOutput(2).save(output_routes)
SolveVehicleRoutingProblem, пример 2 (автономный скрипт)

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

"""This example shows how to perform a vehicle routing problem analysis using a custom travel mode that
models trucks carrying wide load."""

import sys
import time
import json
import arcpy

# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"

vrp_service = "https://logistics.arcgis.com/arcgis/services;World/VehicleRoutingProblem;{0};{1}".format(username, password)

# Add the geoprocessing service as a toolbox.
arcpy.ImportToolbox(vrp_service)
vrp_tool_name = "SolveVehicleRoutingProblem_VehicleRoutingProblem"

# Set the variables to store results from the tool. Overwrite the results if they already exist.
arcpy.env.overwriteOutput = True
output_routes = "C:/data/Results.gdb/Routes"
assigned_orders = "C:/data/Results.gdb/AssignedOrders"
unassigned_orders = "C:/data/Results.gdb/UnassignedOrders"

# Get the schema for input orders, depots and routes
input_orders = arcpy.GetParameterValue(vrp_tool_name, 0)
input_depots = arcpy.GetParameterValue(vrp_tool_name, 1)
input_routes = arcpy.GetParameterValue(vrp_tool_name, 2)

# Create two orders as input. The coordinate values are in WGS84 spatial reference.
# AssignmentRule for orders is 3 which specifies that the tool should assign a new
# sequence and route for every order.
orders = [(-122.51, 37.7724), (-122.4889, 37.7538)]
sr = arcpy.SpatialReference(4326)
with arcpy.da.InsertCursor(input_orders, ("SHAPE@", "Name", "AssignmentRule")) as cursor:
    for i, order in enumerate(orders):
        order_shape = arcpy.PointGeometry(arcpy.Point(order[0], order[1]), sr)
        row = (order_shape, "O{}".format(i + 1), 3)
        cursor.insertRow(row)

# Create one depot as input. The coordinate values are in WGS84 spatial reference
depots = [(-122.3943, 37.7967)]
with arcpy.da.InsertCursor(input_depots, ("SHAPE@", "Name")) as cursor:
    for i, depot in enumerate(depots):
        depot_shape = arcpy.PointGeometry(arcpy.Point(depot[0], depot[1]), sr)
        row = (depot_shape, "D{}".format(i + 1))
        cursor.insertRow(row)

# Create one route as input. Ensure that the StartDepotName and EndDepotName fields on routes has same
# value as the Name field on input depots. AssignmentRule for routes is 1 which specifies that the tool
# must include the route. CostPerUnitTime and MaxOrderCount are fields that cannot have null values if
# the route is to be considered as a valid route.  
with arcpy.da.InsertCursor(input_routes, ("Name", "StartDepotName",
                                          "EndDepotName", "AssignmentRule",
                                          "CostPerUnitTime", "MaxOrderCount")) as cursor:
    row = ("R1", "D1", "D1", 1, 1, 10)
    cursor.insertRow(row)

# Change Vehicle Width attribute parameter value to 4.5 (about 15 feet) for the Trucking Time travel mode
# used for the analysis
portal_url = "https://www.arcgis.com"
arcpy.SignInToPortal(portal_url, username, password)
travel_mode_list = arcpy.na.GetTravelModes(portal_url)
tt = travel_mode_list["Trucking Time"]
tt_json = str(tt)
tt_dict = json.loads(tt_json)
tt_dict["restrictionAttributeNames"].append("Width Restriction")

for attr_param in tt_dict["attributeParameterValues"]:
    if attr_param['attributeName'] == 'Width Restriction' and attr_param['parameterName'] == 'Vehicle Width (meters)':
        attr_param['value'] = 4.5
travel_mode = json.dumps(tt_dict)

# Call the tool
result = arcpy.VehicleRoutingProblem.SolveVehicleRoutingProblem(input_orders, input_depots,
                                                                input_routes, travel_mode=travel_mode)
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))

# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
    time.sleep(1)

# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
    arcpy.AddError("An error occured when running the tool")
    arcpy.AddError(result.getMessages(2))
    sys.exit(2)
elif result_severity == 1:
    arcpy.AddWarning("Warnings were returned when running the tool")
    arcpy.AddWarning(result.getMessages(1))

# Save the output routes and orders to a local geodatabase
result.getOutput(0).save(unassigned_orders)
result.getOutput(1).save(assigned_orders)
result.getOutput(2).save(output_routes)

Параметры среды

Этот инструмент не использует параметры среды геообработки