VehicleRoutingProblem

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

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

Обсуждение

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

Более подробно о решении проблем выбора маршрута транспортного средства

Синтаксис

 VehicleRoutingProblem (in_network, {version})
ПараметрОписаниеТип данных
in_network

Набор сетевых данных или сервис, который будет использоваться для сетевого анализа. Аргумент можно задать с помощью пути к каталогу с набором сетевых данных, объекту слоя набора сетевых данных, строки с именем слоя набора сетевых данных или URL-адреса портала для сервиса сетевого анализа. Сеть должна содержать хотя бы один режим перемещения.

Для использования URL-адреса портала необходимо выполнить вход на портал под учетной записью с правами на маршрутизацию.

Анализ расходует кредиты, если объект использует ArcGIS Online в качестве in_network. Дополнительные сведения см. в разделе Обзор сервисных кредитов.

String
version

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

Обновленный объект схемы VehicleRoutingProblem был представлен в ArcGIS Pro 2.7 для повышения удобства и более точного соответствия схеме слоев VRP, появившихся в ArcGIS Pro 2.6.

Рекомендуется использовать для всех новых анализов схему версии Two, если возможно. Однако схема версии Two в настоящий момент не поддерживается для URL портала для источников сетевых данных. Если в анализе будет использоваться URL портала для источников сетевых данных или скрипт должен быть совместим с версиями ПО до ArcGIS Pro 2.7, используйте схему версии One.

По умолчанию применяется схема версии One.

Object

Свойства

СвойствоОписаниеТип данных
allowSaveLayerFile
(чтение и запись)

Указывает, разрешается ли сохранение результата анализа в виде файла слоя, используя метод saveAsLayerFile получившегося объекта. True означает, что вы можете сохранить файл слоя. False означает, что сохранить нельзя. Значение по умолчанию True, если в анализе используется набор сетевых данных, и False при использовании сервиса портала. Разрешение сохранения файла слоя может замедлить анализ, если в анализе используется сервис портала.

Boolean
allowSaveRouteData
(чтение и запись)

Указывает, разрешается ли сохранение результата анализа в файл ZIP, используя метод saveRouteData получившегося объекта. True означает, что вы можете сохранить данные маршрута. False означает, что сохранить нельзя. Значение по умолчанию True, если в анализе используется набор сетевых данных, и False при использовании сервиса портала. Разрешение сохранения данных маршрута может замедлить анализ, если в анализе используется сервис портала.

Boolean
defaultDate
(чтение и запись)

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

DateTime
directionsDistanceUnits
(чтение и запись)

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

Object
directionsLanguage
(чтение и запись)

Язык, на котором будет отображаться выходной текст с указаниями пошаговых направлений. Свойство возвращается и устанавливается в виде строки с использованием одного из двух- или пятизначных кодов языков, представляющих поддерживаемые языки направлений. Список доступных языков направлений можно получить с помощью функции arcpy.nax.ListDirectionsLanguages. Значение по умолчанию - en (English) или язык активного в данный момент языкового пакета. Свойство применимо, только если свойство returnDirections имеет значение True.

String
directionsStyle
(чтение и запись)

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

Значение по умолчанию равно Desktop.

Object
distanceUnits
(чтение и запись)

Единицы, используемые для расстояния перемещения в выходных данных анализа. Независимо от единиц измерения в стоимостных атрибутах набора сетевых данных выходные данные будут трансформированы в единицы, заданные в этом свойстве. Возвращается свойство и задается в качестве значения в перечислении DistanceUnits. По умолчанию – DistanceUnits.Kilometers.

Object
excessTransitFactor
(чтение и запись)

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

Возвращается свойство и задается в качестве участвующего в перечислении Importance. По умолчанию – Importance.Medium.

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

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

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

Object
ignoreInvalidLocations
(чтение и запись)

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

Boolean
networkDataSource
(только чтение)

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

String
overrides
(чтение и запись)

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

Значение этого параметра должно быть задано в JavaScript Object Notation (JSON). К примеру, корректным значением является следующее: {"overrideSetting1" : "value1", "overrideSetting2" : "value2"}. Замещающее имя всегда заключено в двойные кавычки. Эти значения могут быть числовыми, булевыми или текстовыми.

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

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

String
returnDirections
(чтение и запись)

Задает, будут ли создаваться пошаговые направления. True означает, что пошаговые направления будут генерироваться при решении анализа. False означает, что направления генерироваться не будут. Генерирование направлений может замедлить выполнение анализа. Значение по умолчанию равно False.

Boolean
returnStopShapes
(чтение и запись)

Если задано значение True, механизм расчета создает точки выходных остановок. Если задано значение False, выходные остановки будут возвращены в табличном формате. По умолчанию – False.

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

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

Сервисы маршрутизации, основанные на порталах, работающих под управлением версий ArcGIS Enterprise старше 10.8, не поддерживают возврат стоп-форм. Метод возвращает исключение ValueError, если для returnStopShapes вы задали True, а сервис не поддерживает эту опцию.

Boolean
routeShapeType
(чтение и запись)

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

Object
searchQuery
(чтение и запись)

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

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

Значение параметра указывается в виде списка с вложенными списками. Вложенный список состоит из двух значений, указывающих имя и выражение SQL для всех источников сети. Синтаксис выражения SQL несколько различается в зависимости от типа класса объектов источника сети. Например, если вы выполняете запрос к исходному классу объектов, хранящемуся в файловой или многопользовательской базе геоданных, шейп-файлам, SDC, то имена полей необходимо заключить в двойные кавычки: "CFCC". Если вы выполняете запрос к исходному классу объектов, хранящемуся в персональной базе геоданных, заключите поля в квадратные скобки: [CFCC].

Если запрос для конкретного источника указывать не нужно, используйте "#" в качестве значения для выражения SQL или исключите имя источника и выражение SQL из значения параметра. Если запрос для всех источников сети указывать не нужно, используйте "#" в качестве значения параметра.

Например, значение параметра [["Streets","\"CFCC\" = 'A15'"], ["Streets_ND_Junctions",""]] определяет выражение SQL для исходного класса объектов Streets и отсутствие выражения для исходного класса объектов Streets_ND_Junctions. Обратите внимание, что двойные кавычки, окружающие имя поля CFCC, можно проигнорировать, добавив символы обратной косой черты, что позволит избежать ошибки анализа в интерпретаторе Python.

По умолчанию запрос не используется.

List
searchTolerance
(чтение и запись)

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

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

Double
searchToleranceUnits
(чтение и запись)

Единицы измерения для свойства searchTolerance. Возвращается свойство и задается в качестве значения в перечислении DistanceUnits. По умолчанию – DistanceUnits.Meters.

Object
spatiallyClusterRoutes
(чтение и запись)

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

По умолчанию – True.

Boolean
timeUnits
(чтение и запись)

Единицы, используемые для времени перемещения в выходных данных анализа. Независимо от единиц измерения в стоимостных атрибутах набора сетевых данных выходные данные будут трансформированы в единицы, заданные в этом свойстве. Возвращается свойство и задается в качестве значения в перечислении TimeUnits. По умолчанию – TimeUnits.Minutes.

Object
timeWindowFactor
(чтение и запись)

Определяет ранги значения для временных окон.

Возвращается свойство и задается в качестве участвующего в перечислении Importance. По умолчанию – Importance.Medium.

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

Если задано значение Importance.Medium, соблюдается баланс между сокращением времени в пути и соблюдением временных окон при прибытии.

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

Object
timeZoneForTimeFields
(чтение и запись)

Показывает, выражаются ли значения во временных полях в локальном местном времени входных местоположений или во всемирном координированном времени (UTC). Возвращается свойство и задается в качестве участвующего в перечислении TimeZoneUsage. По умолчанию – TimeZoneUsage.LocalTimeAtLocations.

Object
travelMode
(чтение и запись)

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

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

Значение возвращается и устанавливается как объект arcpy.nax.TravelMode, но оно также может быть установлено с использованием текстового имени режима передвижения или строки, содержащей действительное представление JSON режима передвижения. По умолчанию используется режим передвижения, определенный в наборе сетевых данных, используемом для анализа.

Более подробно о режимах передвижения

Object

Обзор метода

МетодОписание
addFields (input_type, field_description)

Добавляет пользовательские поля к заданному входному классу. Эти поля будут включены в словарь сопоставления полей, созданный методом fieldMappings, и будут также доступны для использования посредством метода insertCursor.

count (input_type)

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

fieldMappings (input_type, {use_location_fields}, {list_candidate_fields})

Создает словарь NAClassFieldMappings, который сопоставляет входной тип с объектами arcpy.nax.NAClassFieldMap, позволяющими вам сопоставлять поля ваших входных данных свойствам механизма расчета. Словарь может использоваться в качестве входных данных аргумента field_mappings метода load.

fieldNames (input_type, {use_location_fields})

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

insertCursor (input_type, field_names, {append})

Задает курсор записи для заданного типа выходных данных. Этот курсор предназначен для добавления строк непосредственно во входных данных.

load (input_type, features, {field_mappings}, {append}, {max_features})

Задает входные объекты, которые будут участвовать в анализе.

solve ()

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

Методы

addFields (input_type, field_description)
ПараметрОписаниеТип данных
input_type

The type of input to which the fields should be added.

Параметр должен быть задан с помощью перечисления VehicleRoutingProblemInputDataType при использовании схемы версии VehicleRoutingProblemSchemaVersion.One или перечисления VehicleRoutingProblemInputDataType2 при использовании схемы версии VehicleRoutingProblemSchemaVersion.Two.

Object
field_description
[field_description,...]

The fields and their properties that will be added to the input class. The value should be constructed as a list of lists with each row containing the following items:

  • Field name—The name of the field that will be added to the input class.
  • Field type—The type of the new field.
  • Field alias—The alternate display name given to the field name.
  • Field length—The length of the field being added. This sets the maximum number of allowable characters for each record of the field. This option is only applicable to fields of type text; the default length is 255.
  • Default value—The default value of the field.
  • Field domain—The geodatabase domain that will be assigned to the field.

Available field types are as follows:

  • TEXT—Any string of characters.
  • FLOAT—Fractional numbers between -3.4E38 and 1.2E38.
  • DOUBLE—Fractional numbers between -2.2E308 and 1.8E308.
  • SHORT—Whole numbers between -32,768 and 32,767.
  • LONG—Whole numbers between -2,147,483,648 and 2,147,483,647.
  • DATE—Date or time.

The method will return an error if the field already exists in the table or if any of the field properties are invalid.

List
count (input_type)
ПараметрОписаниеТип данных
input_type

Тип подсчитываемых входных объектов.

Параметр должен быть задан с помощью перечисления VehicleRoutingProblemInputDataType при использовании схемы версии VehicleRoutingProblemSchemaVersion.One или перечисления VehicleRoutingProblemInputDataType2 при использовании схемы версии VehicleRoutingProblemSchemaVersion.Two.

Object
Возвращаемое значение
Тип данныхОписание
Integer

Число строк.

fieldMappings (input_type, {use_location_fields}, {list_candidate_fields})
ПараметрОписаниеТип данных
input_type

The type of input for which the field mappings are returned.

Параметр должен быть задан с помощью перечисления VehicleRoutingProblemInputDataType при использовании схемы версии VehicleRoutingProblemSchemaVersion.One или перечисления VehicleRoutingProblemInputDataType2 при использовании схемы версии VehicleRoutingProblemSchemaVersion.Two.

See descriptions of the fields available for each input type when using the VehicleRoutingProblemSchemaVersion.One schema version or the VehicleRoutingProblemSchemaVersion.Two schema version.

Object
use_location_fields

Indicates whether network location fields should be included in the returned field mappings dictionary. Network location fields describe the point on the network where an object is located. You can use network location fields to more precisely control how your analysis inputs locate on the network and to save time when calling the solve method because the solver will not have to calculate the location fields from the geometry of the inputs. You can calculate location fields for a feature class using the Calculate Locations tool.

Learn more about network location fields and how inputs are located on the network

When this argument is set to True, the returned field mappings dictionary will contain network location fields. The default is False; the field mapping dictionary will not include network location fields.

(Значение по умолчанию — False)

Boolean
list_candidate_fields
[list_candidate_fields,...]

Use this parameter to map additional, non-default fields from your input data into your analysis inputs. For example, if your input feature class contains a field named MyField, and you want this field to be included in your analysis inputs, pass the MyField field object to the list_candidate_fields parameter. MyField will be included in the returned field mapping dictionary and automatically mapped. When you call the load method using these field mappings, MyField will be included in the analysis inputs along with all the default fields. In many cases, these extra fields will be passed to the analysis output as well.

The parameter should be specified as a list of arcpy.Field objects, which can be obtained from a given feature class or table using the arcpy.ListFields function.

Learn more about best practices for setting up analysis inputs

(Значение по умолчанию — None)

Field
Возвращаемое значение
Тип данныхОписание
Dictionary

Словарь NAClassFieldMappings, в котором ключами являются имена полей, а значениями - объекты arcpy.nax.NAClassFieldMap.

fieldNames (input_type, {use_location_fields})
ПараметрОписаниеТип данных
input_type

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

Параметр должен быть задан с помощью перечисления VehicleRoutingProblemInputDataType при использовании схемы версии VehicleRoutingProblemSchemaVersion.One или перечисления VehicleRoutingProblemInputDataType2 при использовании схемы версии VehicleRoutingProblemSchemaVersion.Two.

See descriptions of the fields available for each input type when using the VehicleRoutingProblemSchemaVersion.One schema version or the VehicleRoutingProblemSchemaVersion.Two schema version.

Object
use_location_fields

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

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

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

(Значение по умолчанию — False)

Boolean
Возвращаемое значение
Тип данныхОписание
String

Список имен полей, поддерживаемых заданным входным типом.

insertCursor (input_type, field_names, {append})
ПараметрОписаниеТип данных
input_type

The type of input into which the cursor can be used to insert rows.

Параметр должен быть задан с помощью перечисления VehicleRoutingProblemInputDataType при использовании схемы версии VehicleRoutingProblemSchemaVersion.One или перечисления VehicleRoutingProblemInputDataType2 при использовании схемы версии VehicleRoutingProblemSchemaVersion.Two.

Object
field_names
[field_names,...]

A list of field names of the input type whose values you want to set when inserting rows using the cursor. You can get the names of the fields supported by an input type by using the fieldNames method.

See descriptions of the fields available for each input type when using the VehicleRoutingProblemSchemaVersion.One schema version or the VehicleRoutingProblemSchemaVersion.Two schema version.

In addition to regular fields, you can also set the geometry of the input using one of the following geometry tokens:

  • SHAPE@XYA tuple of the feature's centroid x,y coordinates.
  • SHAPE@XYZ
  • SHAPE@JSON The esri JSON string representing the geometry.
  • SHAPE@WKBThe well-known binary (WKB) representation for OGC geometry. It provides a portable representation of a geometry value as a contiguous stream of bytes.
  • SHAPE@WKTThe well-known text (WKT) representation for OGC geometry. It provides a portable representation of a geometry value as a text string.
  • SHAPE@A geometry object for the feature.

The SHAPE@XY and SHAPE@XYZ tokens are only supported for point-based input types. When using the SHAPE@XY and SHAPE@XYZ tokens, the x-, y-, and z-values should be specified in the spatial reference of the network data source being used in the analysis.

String
append

Specifies whether the features being inserted should be appended to the existing set of features for the input type. A value of True indicates that the new features should be appended; the existing features will be preserved. This is the default. A value of False indicates that any existing features for the input type should be deleted and replaced with the features currently being inserted.

(Значение по умолчанию — True)

Boolean
Возвращаемое значение
Тип данныхОписание
Object

Объект SolverInsertCursor, который можно использовать для записи объектов.

load (input_type, features, {field_mappings}, {append}, {max_features})
ПараметрОписаниеТип данных
input_type

The type of input feature to load.

Параметр должен быть задан с помощью перечисления VehicleRoutingProblemInputDataType при использовании схемы версии VehicleRoutingProblemSchemaVersion.One или перечисления VehicleRoutingProblemInputDataType2 при использовании схемы версии VehicleRoutingProblemSchemaVersion.Two.

Object
features

The input features to load. This parameter accepts the following input types:

  • Catalog path to a feature class or a table
  • Layer object
  • String representing the name of a layer
  • FeatureSet or RecordSet object

For layer inputs, only selected features will be loaded. If a layer has a definition query, only the subset of features visible with the definition query will be loaded. The method also honors the Extent geoprocessing environment; only features in the specified extent will be loaded.

String
field_mappings

An NAClassFieldMappings dictionary that maps the field names of the input type to arcpy.nax.NAClassFieldMap objects representing the mapping of fields from the input features. Valid input for this parameter can be constructed using the fieldMappings method.

If field mappings are not specified, all fields from the input features that have the same name as the supported fields for the input type will be mapped.

(Значение по умолчанию — None)

Dictionary
append

Indicates whether the features being loaded should be appended to the existing set of features for the input type. A value of True indicates that the new features should be appended; the existing features will be preserved. This is useful if you want to load inputs from multiple feature classes or tables to use in a single analysis. This is the default. A value of False indicates that any existing features for the input type should be deleted and replaced with the features currently being loaded.

(Значение по умолчанию — True)

Boolean
max_features

The maximum number of features that can be loaded into the input type. This is useful if you are creating a tool or service and want an error returned if the size of the input exceeds the available resources. The load method will return an arcpy.nax.LimitError if the number of input features exceeds the max_features limit.

If a value is not specified, no limit is enforced for the count of the input features.

(Значение по умолчанию — None)

Integer
solve ()
Возвращаемое значение
Тип данныхОписание
Object

Объект arcpy.nax.VehicleRoutingProblemResult, который можно использовать для доступа к выходным данным и сообщениям механизма расчета.

Пример кода

VehicleRoutingProblem, пример 1

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

# An example showing how to perform vehicle routing problem analysis using inputs from feature classes and tables.
import arcpy
arcpy.CheckOutExtension("network")

nds = "C:/data/NorthAmerica.gdb/Routing/Routing_ND"
nd_layer_name = "Routing_ND"
input_orders = "C:/data/io.gdb/Orders"
input_depots = "C:/data/io.gdb/Depots"
input_routes = "C:/data/io.gdb/Vehicles"
output_stops = "C:/data/io.gdb/AssignedStops"
output_routes = "C:/data/io.gdb/Routes"
output_directions = "C:/data/io.gdb/Directions"
unassigned_stops = "C:/data/io.gdb/UnassignedStops"

# Create a network dataset layer and get the desired travel mode for analysis
arcpy.nax.MakeNetworkDatasetLayer(nds, nd_layer_name)
nd_travel_modes = arcpy.nax.GetTravelModes(nd_layer_name)
travel_mode = nd_travel_modes["Driving Time"]

# Instantiate a VehicleRoutingProblem solver object
vrp = arcpy.nax.VehicleRoutingProblem(nds)
# Set properties
vrp.travelMode = travel_mode
vrp.distanceUnits = arcpy.nax.DistanceUnits.Miles
vrp.routeShapeType = arcpy.nax.RouteShapeType.TrueShape
vrp.returnDirections = True
vrp.returnStopShapes = True
# Load inputs
vrp.load(arcpy.nax.VehicleRoutingProblemInputDataType.Orders, input_orders)
vrp.load(arcpy.nax.VehicleRoutingProblemInputDataType.Depots, input_depots)
vrp.load(arcpy.nax.VehicleRoutingProblemInputDataType.Routes, input_routes)
# Solve the analysis
result = vrp.solve()

# Export the results to feature classes
if result.solveSucceeded:
    result.export(arcpy.nax.VehicleRoutingProblemOutputDataType.Stops, output_stops)
    result.export(arcpy.nax.VehicleRoutingProblemOutputDataType.Routes, output_routes)
    result.export(arcpy.nax.VehicleRoutingProblemOutputDataType.Directions, output_directions)
    if result.isPartialSolution:
        print("Some of the orders were not assigned.")
        result.export(arcpy.nax.VehicleRoutingProblemOutputDataType.UnassignedStops, unassigned_stops)
else:
    print("Solved failed")
    print(result.solverMessages(arcpy.nax.MessageSeverity.All))
VehicleRoutingProblem, пример 2

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

# An example showing how to perform vehicle routing problem analysis using inputs from feature classes and tables.
import arcpy
arcpy.CheckOutExtension("network")

nds = "C:/data/NorthAmerica.gdb/Routing/Routing_ND"
nd_layer_name = "Routing_ND"
input_orders = "C:/data/io.gdb/Orders"
input_depots = "C:/data/io.gdb/Depots"
input_routes = "C:/data/io.gdb/Vehicles"
output_orders = "C:/data/io.gdb/VisitedOrders"
output_routes = "C:/data/io.gdb/Routes"
output_depots_visits = "C:/data/io.gdb/DepotVisits"

# Create a network dataset layer and get the desired travel mode for analysis
arcpy.nax.MakeNetworkDatasetLayer(nds, nd_layer_name)
nd_travel_modes = arcpy.nax.GetTravelModes(nd_layer_name)
travel_mode = nd_travel_modes["Driving Time"]

# Instantiate a VehicleRoutingProblem solver object using schema version Two
vrp = arcpy.nax.VehicleRoutingProblem(nds, arcpy.nax.VehicleRoutingProblemSchemaVersion.Two)
# Set properties
vrp.travelMode = travel_mode
vrp.distanceUnits = arcpy.nax.DistanceUnits.Miles
vrp.routeShapeType = arcpy.nax.RouteShapeType.TrueShape
vrp.returnDirections = True
# Load inputs
vrp.load(arcpy.nax.VehicleRoutingProblemInputDataType2.Orders, input_orders)
vrp.load(arcpy.nax.VehicleRoutingProblemInputDataType2.Depots, input_depots)
vrp.load(arcpy.nax.VehicleRoutingProblemInputDataType2.Routes, input_routes)
# Solve the analysis
result = vrp.solve()

# Export the results to feature classes
if result.solveSucceeded:
    result.export(arcpy.nax.VehicleRoutingProblemOutputDataType2.Orders, output_orders)
    result.export(arcpy.nax.VehicleRoutingProblemOutputDataType2.Routes, output_routes)
    result.export(arcpy.nax.VehicleRoutingProblemOutputDataType2.DepotVisits, output_depots_visits)
else:
    print("Solve failed")
    print(result.solverMessages(arcpy.nax.MessageSeverity.All))