Сводка
Find Routes определяет кратчайшие пути для посещения остановок и возвращает путевые листы, сведения о посещенных остановках и маршруты, включая время в пути и расстояние.
Инструмент может находить маршруты по нескольким входным точкам в заданной последовательности, или в последовательности, позволяющий сократить длину маршрута. Вы можете группировать входные остановки в различные маршруты с помощью поля RouteName, для каждой группы остановок инструмент создаст свой маршрут, что позволяет одновременно создавать маршруты для нескольких транспортных средств.
Примечание:
При использовании Найти маршруты для прокладки маршрутов для нескольких транспортных средств, необходимо распределить остановки по маршрутам перед запуском задачи. Если вам требуется инструмент для определения наилучшего способа распределения остановок по транспортным средствам, а затем по маршрутам, вместо него используйте инструмент Расчет задачи выбора маршрута транспорта.
Внимание:
Актуальную информацию об инструменте см. в последней версии раздела веб-справки. ArcGIS Online регулярно выполняет функциональные обновления в сервисах, например, установленная на вашем компьютере справка может устареть.
Иллюстрация
Использование
Инструменты в наборе инструментов Готовые к использованию это ArcGIS Onlineсервисы геообработки, которые ArcGIS Online используют данные и возможности анализа .
Инструмент находит кратчайшие маршруты на основе времени в пути, если для параметра Единицы измерения используются единицы времени, и на основе расстояния, если используются единицы измерения расстояний.
Для успешной работы инструмента необходимо указать как минимум две остановки. Вы можете загрузить до 10 000 остановок и присвоить до 150 остановок каждому маршруту.
Вы можете добавить до 250 точечных барьеров. Вы можете добавить любое количество линейных или полигональных барьеров, но линейные барьеры не могут пересекать более 500 объектов улиц, а полигональные – более 2000 объектов улиц.
Вы можете использовать иерархию дорог, что позволит быстрее получить результаты, чем при вычислении точных маршрутов, но полученное решение может быть менее оптимальным.
Независимо от того, включен ли параметр Использовать иерархию (True), иерархия всегда используется, если Евклидово расстояние между любой парой остановок составляет более 50 миль (80,46 км).
Евклидово расстояние между любой парой остановок не может быть больше, чем 27 миль (43,45 километров), если для параметра Travel Mode задано значение Walking, или если задано значение Custom, и используется ограничение Walking.
Если расстояние между входной точкой и ближайшей проезжей улицей больше 12.42 миль (20 километров), то точка исключается из анализа.
При использовании этого сервиса расходуются кредиты. Подробнее см. в разделе Обзор сервисных кредитов.
Синтаксис
arcpy.agolservices.FindRoutes(Stops, Measurement_Units, {Analysis_Region}, {Reorder_Stops_to_Find_Optimal_Routes}, {Preserve_Terminal_Stops}, {Return_to_Start}, {Use_Time_Windows}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, {UTurn_at_Junctions}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Use_Hierarchy}, {Restrictions}, {Attribute_Parameter_Values}, {Route_Shape}, {Route_Line_Simplification_Tolerance}, {Populate_Route_Edges}, {Populate_Directions}, {Directions_Language}, {Directions_Distance_Units}, {Directions_Style_Name}, {Travel_Mode}, {Impedance}, {Time_Zone_for_Time_Windows}, {Save_Output_Network_Analysis_Layer}, {Overrides}, {Save_Route_Data}, {Time_Impedance}, {Distance_Impedance}, {Output_Format})
Parameter | Объяснение | Тип данных |
Stops | Указывает местоположения, которые будет посещать выходной маршрут или маршруты. Можно добавить до 10 000 остановок и добавлять до 150 остановок к каждому маршруту. (Распределяйте остановки по маршрутам с помощью атрибута RouteName.) При указании остановок вы можете задать такие их свойства, как имя или время обслуживания, с помощью следующих атрибутов: Name Имя остановки. Имя используется в путевом листе. Если имя не указано, в выходных остановках, маршрутах и путевом листе автоматически создается уникальное имя с префиксом Location. RouteName Имя маршрута, для которого назначена остановка. Присвоение различным остановкам одного и того же имени маршрута приводит к группировке остановок, т.е. все они будут включены в один маршрут. Вы можете создавать несколько маршрутов за один раз, присваивая уникальные имена маршрутов различным группам остановок. Вы можете сгруппировать до 150 остановок в один маршрут Sequence Выходные маршруты пройдут по остановкам в том порядке, который задан этим атрибутом. В группах остановок с одинаковым значением RouteName порядковый номер должен быть больше 0, но не должен превышать максимальное число остановок. Кроме того, порядковый номер не должен дублироваться. Если опция Изменить порядок остановок для нахождения оптимального маршрута включена (True), то порядок посещения остановок для маршрутов (за исключением, возможно, первой и последней остановки) будет проигнорирован, чтобы инструмент мог найти последовательность посещения остановок с минимальными временными затратами для каждого маршрута. (Параметры Сохранить порядок остановок и Возврат в начало определяют, будут ли игнорироваться первое и последнее значения последовательности.) AdditionalTime Время, затраченное на остановке, которое добавляется к общему времени маршрута. По умолчанию значение равно 0. Единицы измерения для этого атрибута задаются параметром Единицы измерения. Значение атрибута включается в анализ, только когда единицами измерения являются единицы времени. Вы можете учитывать дополнительное время, необходимое для завершения задачи на остановке например, починка прибора, вручение посылки или проверка разрешений. AdditionalDistance Дополнительное расстояние, пройденное на остановке, которое добавляется к общей протяженности маршрута. По умолчанию значение равно 0. Единицы измерения для этого атрибута задаются параметром Единицы измерения. Значение атрибута включается в анализ, только когда единицами измерения являются единицы расстояния. Обычно расположение остановки, например, дом, находится не на самой улице, а на некотором удалении от проезжей части. Значение этого атрибута может использоваться для учета расстояния между действительным местоположением остановки и ее положением на улице имеет смысл включать это расстояние в общую протяженность пути. AdditionalCost Дополнительная стоимость, затраченная на остановке, которая добавляется к общей протяженности маршрута. По умолчанию значение равно 0. Это значение атрибута следует использовать только, если режим передвижения, применяемый для анализа, использует атрибут импеданса, основанный ни на времени, ни на расстоянии. Единицы измерения для значений атрибута будут интерпретированы как неизвестные. TimeWindowStart Самое раннее время посещения остановки. Задавая начало и окончание временного окна посещения остановки, можно указать, когда именно маршрут достигнет этой остановки. Если режим передвижения использует атрибут импеданса, который основан на времени, то указание значений временного окна приведет к тому, что анализ найдет решение, при котором минимизируется общее время поездки и остановка достигается в пределах заданного временного окна. Убедитесь, что значение имеет формат даты-времени, например, 8/12/2015 12:15 PM. При решении задачи, которая охватывает несколько часовых поясов, значения временного окна каждой остановки соответствуют ее часовому поясу. Поле может содержать пустое значение (null), это означает, что маршрут может достичь остановки в любое время до времени, заданного параметром TimeWindowEnd. Если параметр TimeWindowEnd также содержит значение null, маршрут может посетить эту остановку в любое время. TimeWindowEnd Самое позднее время посещения остановки. Задавая начало и окончание временного окна посещения остановки, можно указать, когда именно маршрут достигнет этой остановки. Если режим передвижения использует атрибут импеданса, который основан на времени, то указание значений временного окна приведет к тому, что анализ найдет решение, при котором минимизируется общее время поездки и остановка достигается в пределах заданного временного окна. Убедитесь, что значение имеет формат даты-времени, например, 8/12/2015 12:15 PM. При решении задачи, которая охватывает несколько часовых поясов, значения временного окна каждой остановки соответствуют ее часовому поясу. Поле может содержать пустое значение (null), это означает, что маршрут может достичь остановки в любое время после времени, заданного параметром TimeWindowStart. Если параметр TimeWindowStart также содержит значение null, маршрут может посетить эту остановку в любое время. CurbApproach Указывает направление, в котором транспортное средство может подъехать или отъехать от остановки. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
Атрибут CurbApproach был разработан для работы с обоими типами национальных стандартов дорожного движения: правостороннего (США) и левостороннего (Великобритания). Для начала рассмотрим случай, когда остановка располагается с левой стороны транспортного средства. Это условие должно обязательно выполняться в независимости от того движется транспорт по левой или по правой полосе дороги. Вы можете выбрать, с какой из двух сторон подъехать к остановке, независимо от национального стандарта дорожного движения, т.е. где будет находится точка заказа – справа или слева от транспортного средства. Например, если необходимо подъехать к остановке так, чтобы она не была отделена от транспортного средства полосой движения, необходимо выбрать правую сторону транспортного средства (1) в США, и левую сторону транспортного средства (2) в Великобритании. LocationType Определяет тип остановки. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
Bearing Направление, в котором движется точка. Единицами измерения являются градусы, отсчитываются по часовой стрелке от истинного севера. Данное поле используется совместно с полем BearingTol. Данные направления обычно отправляются автоматически с мобильного устройства, оснащенного GPS-приемником. Попробуйте включить данные о направлении, если вы загружаете движущееся входное местоположение например, пешехода или транспортное средство. Использование данного поля обеспечивает защиту от добавления положений на неверные ребра, что может произойти, например, когда транспортное средство расположено недалеко от перекрестка или эстакады. Направление также позволяет инструменту определять, на какой стороне улицы расположена точка. Более подробно о направлении и допуске направления BearingTol Значение допуска направления создает диапазон допустимых значений направления во время определения положения движущихся точек на ребре с использованием поля Bearing. Если значение из поля Bearing в пределах допустимых значений, созданных на основании допуска направления на ребре, точка может быть добавлена как сетевое положение; в противном случае происходит анализ ближайшей точки следующего ближайшего ребра. Единицами измерения являются градусы; в качестве значения по умолчанию используется 30. Значения должны быть больше 0 и меньше 180. Значение, равное 30, означает, что когда Network Analyst предпринимает попытку добавить сетевое положение на ребро, диапазон допустимых значений направления создается в пределах 15 градусов с каждой стороны ребра (слева и справа) и в обоих направлениях оцифровки ребра. Более подробно о направлении и допуске направления NavLatency Это поле может использоваться в процессе решения только, если у поле Bearing и BearingTol также есть значения; а ввод значения NavLatency не является обязательным, даже когда в полях Bearing и BearingTol присутствуют значения. NavLatency указывает, сколько времени, как ожидается, пройдет с момента отправки GPS-информации с движущегося транспортного средства на сервер и до момента получения обработанного маршрута навигационным устройством транспортного средства. Единицы NavLatency совпадают с единицами вашего атрибута импеданса. | Feature Set |
Measurement_Units | Задает единицы, которые должны использоваться для измерения и указания общей продолжительности или протяженности пути для выходных маршрутов. Единицы, выбранные для этого параметра, определяют, будет ли инструмент измерять протяженность или продолжительность пути для нахождения наилучшего маршрута. Выберите единицу времени для минимизации времени пути для указанного режима маршрута (например, пешком или на машине). Для минимизации протяженности пути для выбранного типа маршрута выберите единицы расстояния. Выбранные вами единицы инструмент будет использовать также для указания общей продолжительности или протяженности пути в результатах.
| String |
Analysis_Region (Дополнительный) | Регион, в котором будет выполняться анализ. Если значение этого параметра не указано, инструмент автоматически вычислит имя региона на основе местоположения входных точек. Задание имени региона необходимо только в случае, если для ваших входных данных не подходит автоматическое определение названия региона. Чтобы задать регион используйте одно из следующих значений:
Прежние версии:Следующие названия регионов больше не поддерживаются и будут удалены в следующих версиях. При задании вами одного из устаревших названий инструмент автоматически присвоит вашему региону поддерживаемое название.
| String |
Reorder_Stops_to_Find_Optimal_Routes (Дополнительный) | Указывает, следует ли посещать остановки в указанном вами порядке или в порядке, определяемом инструментом для минимизации общей протяженности маршрута.
Определение оптимального порядка остановок и поиск наилучшего маршрута часто называется задачей по поиску маршрута коммивояжера (TSP). | Boolean |
Preserve_Terminal_Stops (Дополнительный) | Указывает, как будут сохранены конечные остановки. Когда опция Изменить порядок остановок для нахождения оптимальных маршрутов включена (или True), вы можете сохранить начальную или конечную остановку и позволить инструменту изменить порядок посещения остальных остановок. Первая и последняя остановки определяются по их значениям атрибута Sequence или, если значения Sequence пустые (null), то по значениям Object ID.
Параметр Сохранить конечные остановки игнорируется, если параметр Изменить порядок остановок не отмечен (или имеет значение False). | String |
Return_to_Start (Дополнительный) | Указывает, должен ли маршрут начинаться и заканчиваться в одном и том же месте. С помощью этой опции можно избежать дублирования первой остановки для ее использования также в качестве конечной. Начало маршрута является остановкой с наименьшим значением атрибута Sequence. Если значения атрибута Sequence являются пустыми (null), это будет остановка с наименьшим значением Object ID.
| Boolean |
Use_Time_Windows (Дополнительный) | Указывает, будут ли соблюдаться временные окна. Включите эту опцию (или установите значение True), если у каких-либо входных остановок есть временные окна, указывающие, когда маршрут должен прибыть на них. Вы можете добавить временные окна к входным остановкам, введя значения времени в атрибуты TimeWindowStart и TimeWindowEnd.
Если опция Использовать временные окна отмечена (или она имеет значение True), инструмент будет работать немного дольше, даже если ни у одной из входных остановок нет временных окон, поэтому эту опцию по возможности рекомендуется отключать (задавать для нее значение False). | Boolean |
Time_of_Day (Дополнительный) | Указывает время и дату начала маршрутов. Если вы моделируете проезд на автомобиле и указываете текущие дату и время, при нахождении наилучших маршрутов инструмент будет использовать текущие условия дорожного движения, и общее время пути будет учитывать условия дорожного движения. Указание времени суток позволяет создавать более точные маршруты и точнее оценивать время в пути, поскольку будут учтены условия дорожного движения в конкретный день и час. Параметр Часовой пояс для времени суток определяет, как будут указываться время и дата, в UTC или в часовом поясе, в котором находится остановка. Инструмент игнорирует этот параметр, если в Единицах измерения не выбрано время. | Date |
Time_Zone_for_Time_of_Day (Дополнительный) | Указывает часовой пояс параметра Время суток.
| String |
UTurn_at_Junctions (Дополнительный) | Определяет поведение при развороте на перекрестках. При разрешении разворотов неявно предполагается, что механизм расчета позволяет поворот на соединении и продолжение движения по той же улице в обратную сторону. Учитывая, что соединения представляют собой пересечения улиц и тупики, различные транспортные средства могут разворачиваться на некоторых соединениях, но не на всех – это зависит от того, является ли соединение перекрестком или тупиком. Чтобы учесть это, поведение при развороте неявно определяется числом ребер, которые соединяются с соединением, т.е. валентностью соединения. Ниже приведены допустимые значения для данного параметра; каждое из них сопровождается описанием значения в терминах валентности соединения.
Этот параметр игнорируется, если только для Режима передвижения не выбрано Пользовательский. | String |
Point_Barriers (Дополнительный) | Используйте этот параметр для указания одной или нескольких точек, действующих в качестве временных ограничений или представляющих дополнительное время или расстояние, которые могут потребоваться для передвижения по улицам. Например, точечный барьер может быть использован для обозначения упавшего дерева или для ввода времени ожидания на железнодорожном переезде. Инструмент может накладывать ограничение до 250 точек, добавленных в качестве барьеров. При указании точечных барьеров вы можете задать свойства каждого из них, такие как имя или тип барьера, с помощью атрибутов: Name Имя барьера. BarrierType Указывает, ограничивает ли точечный барьер перемещение полностью или добавляет время или расстояние при его пересечении. Значение этого атрибута указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
Additional_Time Время поездки, которое добавляется при прохождении барьера. Это поле применимо только для барьеров дополнительной стоимости. Значение этого поля должно быть больше или равно нулю, а его единицы измерения соответствуют заданным в параметре Единицы измерения. Additional_Distance Расстояние, которое добавляется при прохождении барьера. Это поле применимо только для барьеров дополнительной стоимости. Значение этого поля должно быть больше или равно нулю, а его единицы измерения соответствуют заданным в параметре Единицы измерения. Additional_Cost Стоимость поездки, которая добавляется при прохождении барьера. Это поле применимо только для барьеров дополнительной стоимости. FullEdge Указывает, как ограничительные точечные барьеры применяются к элементам ребер во время анализа. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
CurbApproach Указывает направление движения, на которое влияет барьер. Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
Так как соединения являются точками и не имеют сторон, барьеры на соединениях влияют на все транспортные средства независимо от стороны подъезда. Свойство 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 (Дополнительный) | Используйте этот параметр, чтобы указать полигоны, которые либо полностью запрещают передвижение, либо пропорционально масштабируют время или расстояние, необходимые для передвижения по улицам, пересекаемым полигоном. Сервис накладывает ограничение на количество улиц, которые вы можете ограничить с помощью параметра Полигональные барьеры. Хотя лимита на число линий, которые можно использовать как барьеры, нет, общее число улиц, пересекаемых всеми линиями, не должно превышать 2000. При указании точечных барьеров вы можете задать свойства каждого из них, такие как имя или тип барьера, с помощью атрибутов: Name Имя барьера. BarrierType Указывает, ограничивает ли прохождение через барьер перемещение полностью или масштабирует стоимость перемещения (например время или расстояние). Значение поля указывается одним из следующих целых чисел (используйте числовой код, а не имя в скобках):
ScaledTimeFactor Это коэффициент, на который умножается время поездки по улицам, пересекающимся с барьером. Значение поля должно быть больше нуля. Это поле применимо только для барьеров масштабированной стоимости. ScaledDistanceFactor Это коэффициент, на который умножается длина пути по улицам, пересеченным барьером. Значение поля должно быть больше нуля. Это поле применимо только для барьеров масштабированной стоимости. ScaledCostFactor Это коэффициент, на который умножается стоимость пути по улицам, пересеченным барьером. Значение поля должно быть больше нуля. Это поле применимо только для барьеров масштабированной стоимости. | Feature Set |
Use_Hierarchy (Дополнительный) | Укажите, должна ли использоваться иерархия при нахождении кратчайшего пути между остановками.
Инструмент автоматически начинает использовать иерархию, если расстояние по прямой между пунктами обслуживания и точками спроса превышает 50 миль (80,46 км), даже если в этом параметре указано иное (укажите False в Python). Этот параметр игнорируется, если только для Режима передвижения не выбрано Пользовательский. При моделирования в режиме построения маршрута для пешехода рекомендуется выключить иерархию, поскольку она разработана для построения маршрутов автомобилей. | Boolean |
Restrictions [Restrictions,...] (Дополнительный) | Ограничения, которые должны учитываться инструментом при нахождении наилучшего маршрута. Ограничение представляет собой предпочтение или требование во время поездки. В большинстве случаев ограничения запрещают использование тех или иных дорог. Например, использование ограничения Избегать платных дорог приведет к тому, что платные дороги будут использоваться, только если это абсолютно необходимо для подъезда к инциденту или пункту обслуживания. Ограничение по высоте позволяет прокладывать маршрут в обход всех объектов с пролетами, меньшими, чем высота транспортного средства. Если транспортное средство перевозит коррозионные вещества, применение ограничения Any Hazmat Prohibited (Вредные вещества запрещены) предотвратит перевозку таких материалов по тем дорогам, по которым это запрещено. Примечание:Значения, предоставляемые вами для данного параметра, игнорируются за исключением случаев, когда Режим передвижения задан как Пользовательский. Примечание:Использование некоторых ограничений требует ввода дополнительных значений. Это значение должно быть связано с именем ограничения и определенным параметром, предназначенным для его работы. Вы можете идентифицировать такие ограничения по их названиям, отображающимся под столбцом AttributeName в параметре Attribute Parameter Values. Поле ParameterValue следует использовать в параметре Attribute Parameter Values для правильного использования ограничения при поиске доступных дорог. Примечание:Некоторые ограничения поддерживаются только в определенных странах; их доступность по регионам указана в списке ниже. Кроме доступности ограничений по регионам, можно проверить его доступность в определенной стране по таблице в разделе Список стран Покрытия сетевого анализа. Если для страны указано значениеYes в столбце Атрибуты логистики, то будут проверены ограничения, которые есть для всего региона, в котором находится страна. Если вы задаете имена ограничений, которые недоступны в стране, где находятся инциденты, сервис игнорирует их. Сервис также игнорирует ограничения, где значение параметра Использование ограничений находится в пределах от 0 до 1 (см. параметр Значение параметра атрибутов). Он запрещает все ограничения, чье значение параметра Использование ограничения больше 0. Инструмент поддерживает следующие ограничения:
| String |
Attribute_Parameter_Values (Дополнительный) | Используйте этот параметр для указания дополнительных значений, требуемых атрибутом или ограничением, например для указания того, применяется ли ограничение как полный или рекомендуемый запрет либо как предпочтение путешествовать по дорогам с ограниченным движением. Если ограничение означает нежелательность или предпочтительность использования дороги, вы можете дополнительно указать с помощью этого параметра степень нежелательности или предпочтительности. Например, вы можете установить для платных дорог правило никогда их не использовать, по возможности избегать или наоборот, отдавать им предпочтение. Примечание:Значения, предоставляемые вами для данного параметра, игнорируются за исключением случаев, когда Режим передвижения задан как Пользовательский. Если вы задаете параметр Значения атрибутивного параметра из класса пространственных объектов, имена полей класса пространственных объектов должны соответствовать следующим:
Значения атрибутивного параметра зависят от параметра Ограничения. Поле ParameterValue применяется, только если в качестве значения параметра Ограничения указано имя ограничения. В параметре Значения атрибутивного параметра каждое ограничение (указанное, как AttributeName) содержит значение поля ParameterName, Использование ограничения, определяющее запрет, нежелательность или предпочтительность использования дорог, для которых установлено ограничение, а также степень нежелательности или предпочтительности использования дорог. Поле Использование ограничения ParameterName может иметь одно из следующих строковых значений или эквивалентных числовых значений, указанных в скобках:
Как правило, для поля Использование ограничения используется значение по умолчанию, PROHIBITED, если ограничение связано с характеристиками транспортного средства, например, с его высотой. Однако в некоторых случаях значение поля Использование ограничения будет зависеть от ваших предпочтений при выборе маршрута. Например, для ограничения Избегать платных дорог параметр Использование ограничения имеет по умолчанию значение AVOID_MEDIUM. Это означает, что, при наличии данного ограничения инструмент будет по возможности избегать использования платных дорог при построении маршрута. Значение AVOID_MEDIUM также указывает, насколько важно избегать использования платных дорог при поиске лучшего маршрута: это ограничение имеет средний приоритет. При выборе AVOID_LOW исключение платных дорог из маршрута будет иметь меньшее значение, а при выборе AVOID_HIGH – большее, поэтому сервис будет создавать более длинные маршруты, чтобы по возможности избежать использования платных дорог. При выборе PROHIBITED использование платных дорог будет полностью запрещено, и сервис не сможет включать их даже частично в маршрут. Имейте в виду, что в некоторых ситуациях важно избежать или запретить платные дороги, чтобы избежать платы за проезд. И наоборот, другие предпочитают ездить по платным дорогам, потому что движение без пробок для них более ценно, чем деньги, потраченные на платные дороги. В последнем случае для параметра Использование ограничения следует выбрать значения PREFER_LOW, PREFER_MEDIUM или PREFER_HIGH. Чем выше предпочтительность, тем в большей степени маршрут будет проходить по дорогам с этим ограничением. | Record Set |
Route_Shape (Дополнительный) | Укажите тип объектов маршрута, получаемых на выходе инструмента.
Когда параметр Геометрия маршрута имеет значение Истинная форма или Истинная форма с измерениями, генерализацией формы маршрута можно дополнительно управлять, выбирая значение для параметра Допуск упрощения линии маршрута. Независимо от выбранного значения параметра Геометрия маршрута, лучший маршрут определяется всегда на основе минимальной продолжительности или протяженности пути, а не на основе расстояния по прямой между остановками. Это значит, что изменяются только формы маршрута, а не исходные улицы, которые перебирает инструмент при нахождении маршрута. | String |
Route_Line_Simplification_Tolerance (Дополнительный) | Определяет степень упрощения геометрии выходных линий маршрутов, путевых листов и ребер маршрута. Инструмент игнорирует этот параметр, если значение параметра Геометрия маршрута отличается от Истинная форма. При упрощении сохраняются важнейшие точки на маршруте, например, повороты и перекрестки, составляющую основную форму маршрута, а остальные точки удаляются. Указываемое вами расстояние упрощения является максимальным допустимым смещением упрощенной линии от исходной. Упрощение линии сокращает количество вершин в геометрии маршрута. Это ускоряет работу инструмента. | Linear Unit |
Populate_Route_Edges (Дополнительный) | Указывает, должен ли инструмент строить ребра для каждого маршрута. Ребра маршрутов представляют собой отдельные объекты-улицы или другие объекты, по которым проходит маршрут. Выходной слой Ребра маршрута обычно используется для просмотра улиц или других дорог, наиболее и наименее посещаемых данным маршрутом.
| Boolean |
Populate_Directions (Дополнительный) | Укажите, должен ли инструмент создавать путевой лист для каждого маршрута.
| Boolean |
Directions_Language (Дополнительный) | Язык, на котором должен создаваться путевой лист. Этот параметр используется, только если параметр Заполнить путевой лист отмечен (True в Python). Значениями параметра могут быть следующие двух- или пятисимвольные коды языка:
Сначала инструмент ищет точное соответствие для заданного языка, включая любую локализацию. Если не нашлось точного соответствия, будет выполнена попытка найти соответствие в пределах языковой семьи. Если соответствие не будет найдено, инструмент возвращает путевой лист на английском языке, являющемся языком по умолчанию. К примеру, если установлен язык путевого листа es-MX (мексиканский испанский), инструмент возвратит путевой лист на испанском, так как поддерживает код языка es и не поддерживает es-MX. Внимание:Если язык поддерживает локализацию например, Португальский Бразилия (pt-BR) и Европейский португальский (pt-PT), нужно задать языковую семью и локализацию. Если вы зададите только языковую семью, инструмент не найдет соответствие языковой семье и возвратит путевой лист на используемом по умолчанию английском языке. К примеру, если задан язык путевого листа pt, инструмент выдаст путевой лист на английском, поскольку не поймет, нужно ли выдавать его на языке pt-BR или на языке pt-PT. | String |
Directions_Distance_Units (Дополнительный) | Укажите единицы измерения для отображения расстояний в путевом листе. Этот параметр используется, только если параметр Заполнить путевой лист отмечен (True в Python).
| String |
Directions_Style_Name (Дополнительный) | Укажите имя стиля форматирования для путевого листа. Этот параметр используется, только если параметр Заполнить путевой лист отмечен (True в Python).
| String |
Travel_Mode (Дополнительный) | Задайте режим передвижения для модели анализа. Режимы передвижения настраиваются в ArcGIS Online и могут изменяться администратором вашей организации в целях лучшего соответствия рабочим процессам вашей организации. Вам требуется указать имя режима передвижения, поддерживаемого вашей организацией. Для получения списка имен поддерживаемых режимов передвижения используйте то же подключение к ГИС-серверу, которое вы использовали для доступа к этому инструменту, и в наборе инструментов Утилиты запустите инструмент GetTravelModes. Инструмент GetTravelModes добавляет в приложение таблицу Поддерживаемых режимов передвижения. В качестве входных данных можно задать любое значение в поле Travel Mode Name таблицы Поддерживаемые режимы передвижения. Вы также можете указать в качестве входного значения значение из поля Travel Mode Settings. Это ускорит выполнение инструмента, поскольку инструмент не будет искать настройки на основании имени режима передвижения. Пользовательский (значение по умолчанию) – позволяет настроить собственный режим передвижения при помощи параметров этого режима (Развороты в соединениях, Использовать иерархию, Ограничения, Значения Параметров атрибутов и Импеданс). Значения по умолчанию для модели параметров пользовательского режима передвижения на легковом автомобиле. Также можно выбрать Пользовательский и задать указанные выше параметры пользовательского режима передвижения для моделирования быстрой пешей ходьбы или передвижения грузового автомобиля с определенными габаритными (по высоте) и весовыми характеристиками, загруженного определенным опасным грузом. Можете попробовать различные настройки для получения нужных вам результатов анализа. После определения настроек анализа вам необходимо связаться с администратором вашей организации и сохранить эти настройки как часть нового или существующего режима передвижения, чтобы любой пользователь вашей организации мог перезапустить анализ с такими же настройками. Внимание:При выборе Пользовательского режима, значения, заданные для его параметров, включаются в анализ. Указание другого режима передвижения, определенного вашей организацией, приведет к тому, что все заданные вами в качестве параметров пользовательского режима передвижения значения будут проигнорированы. Этот инструмент перезапишет их значениями заданного режима передвижения. | String |
Impedance (Дополнительный) | Задайте импеданс - значение, представляющее затраты или стоимость перемещения вдоль сегментов дорог или других частей транспортной сети. Время в пути - это импеданс: для того чтобы проехать 1 милю по пустой дороге, машине может понадобиться минута. Время в пути может зависеть от режима перемещения: ту же милю пешеход пройдет за 20 минут, поэтому важно выбрать правильный импеданс для моделируемого режима. Расстояние перемещения – это импеданс; длина дороги в километрах рассматривается как импеданс. В этом смысле расстояние аналогично для всех режимов – километр останется километром и для пешехода, и для машины. (Что может измениться, так это пути, по которым разрешено перемещаться в различных режимах, что влияет на расстояние между точками и моделируется настройками режима передвижения.) Внимание:Значение, указанное вами для данного параметра, игнорируется, за исключением случаев, когда Режим передвижения задан как Пользовательский, который является значением по умолчанию. Выберите из следующих значений импеданса:
Если вы выбираете импеданс, основанный на времени, например, TravelTime, TruckTravelTime, Minutes, TruckMinutes или WalkTime, то параметр Единицы измерения также должен быть указан для времени. Если вы выбираете импеданс, основанный на расстоянии, например, Miles или Kilometers, то Единицы измерения также должны указывать расстояние. Прежние версии:Значения импеданса Время в пути на машине, Время в пути на грузовике, Время в пути пешком и Расстояние пути больше не поддерживаются и будут убраны в следующих версиях. При использовании одного из этих значений инструмент использует значение параметра Импеданс времени для основанных на времени значений и параметра Импеданс расстояния для значений, основанных на расстоянии. | String |
Time_Zone_for_Time_Windows (Дополнительный) | Указывает часовой пояс для значений временного окна на остановках. Временные окна указываются как часть полей TimeWindowStart и TimeWindowEnd на остановках. Этот параметр применяется, только если отмечена опция Использовать временные окна (или имеет значение True).
| String |
Save_Output_Network_Analysis_Layer (Дополнительный) | Указывает, будут ли параметры анализа сохранены в виде файла слоя сетевого анализа. Вы не можете работать с этим файлом напрямую, даже если вы откроете его в приложении ArcGIS Desktop, например, в ArcMap. Это предназначено для отправки в техническую поддержку Esri для диагностики качества результатов, получаемых инструментом.
| Boolean |
Overrides (Дополнительный) | Задает дополнительные опции, которые смогут повлиять на выполнение расчета, если будут найдены решения для задач сетевого анализа. Значение этого параметра должно быть задано в JavaScript Object Notation (JSON). К примеру, допустимое значение имеет следующий вид: {"overrideSetting1" : "value1", "overrideSetting2" : "value2"}. Замещающее имя всегда заключено в двойные кавычки. Эти значения могут быть числовыми, булевыми или текстовыми. Значение по умолчанию является пустым, что означает отсутствие замещения каких-либо настроек механизма расчета. Замещения – дополнительные настройки, которые должны применяться только по итогам выполнения тщательного анализа результатов, которые будут получены до и после применения таких настроек. Список поддерживаемых настроек замещений для каждого расчета и их доступных значений можно получить, обратившись в службу технической поддержки Esri. | String |
Save_Route_Data (Дополнительный) | Выберите, будут ли выходные данные включать .zip-файл, содержащий базу геоданных, в которой хранятся входные и выходные данные анализа в формате, который может быть использован для дальнейшей публикации слоев маршрутов на ArcGIS Online или Portal for ArcGIS.
| Boolean |
Time_Impedance (Дополнительный) | Импеданс на основе времени - это значение, которое задает время перемещения вдоль сегментов дорог или других частей транспортной сети. Примечание:Если импеданс для режима перемещения, указанный с помощью параметра Импеданс, основан на времени, значения параметров Импеданс времени и Импеданс должны быть идентичны. В противном случае сервис выдаст ошибку.
| String |
Distance_Impedance (Дополнительный) | Импеданс на основе расстояния - это значение, которое задает расстояние перемещения вдоль сегментов дорог или других частей транспортной сети. Примечание:Если импеданс для режима перемещения, указанный с помощью параметра Импеданс, основан на расстоянии, значения параметров Импеданс расстояния и Импеданс должны быть идентичными. В противном случае сервис выдаст ошибку.
| String |
Output_Format (Дополнительный) | Определяет формат, в котором будут созданы выходные объекты.
Если задан файловой выходной формат, например, файл JSON или файл GeoJSON, к отображению не будут добавлены выходные данные, так как приложения, такие как ArcMap или ArcGIS Pro, не знают, как отобразить содержимое полученного файла. Вместо этого файл загружается во временную директорию вашего компьютера. В ArcGIS Pro местоположение загруженного файла можно определить, просмотрев значение параметра Выходной результирующий файлв соответствующей строке отчета о выполнении инструмента в Истории геообработки на панели Проект. В ArcMap местоположение загруженного файла можно определить с помощью опции Копировать местоположение ниспадающего меню параметра Выходной результирующий файл в соответствующей строке отчета о выполнении инструмента в окне Результаты геообработки. | String |
Производные выходные данные
Name | Объяснение | Тип данных |
Solve_Succeeded | Определяет, смог ли сервис успешно найти маршруты. | Логическое |
Output_Routes | Обеспечивает доступ к построенным маршрутам. | Набор объектов |
Output_Route_Edges | Обеспечивает доступ к отдельным ребрам сети, по которым проходят маршруты. | Набор объектов |
Output_Directions | Обеспечивает доступ к пошаговому путевому листу для каждого маршрута. | Набор объектов |
Output_Stops | Обеспечивает доступ к атрибутам остановок, пройденных по маршруту, а также остановок, которые не могут быть посещены ни на одном из маршрутов. | Набор объектов |
Output_Network_Analysis_Layer | Слой сетевого анализа со свойствами, как настроенные в параметрах инструмента, который может использоваться для дальнейшего анализа или исправления ошибок на карте. | Файл |
Output_Route_Data | Файл .zip, содержащий всю информацию об определенном маршруте. | Файл |
Output_Result_File | Файл .zip, содержащий результаты анализа, с одним или несколькими файлами для каждого результата. Формат отдельного файла задается параметром Выходной формат. | Файл |
Пример кода
В следующем скрипте Python показано использование инструмента Find Routes.
"""This example shows how to find a best route that optimizes the sequence in which the stops are visitied."""
import sys
import time
import datetime
import arcpy
# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"
route_service = "https://logistics.arcgis.com/arcgis/services;World/Route;{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(route_service)
# Set the variables to call the tool
stops = "C:/data/Inputs.gdb/Stores"
output_routes = "C:/data/Results.gdb/Routes"
output_directions = "C:/data/Results.gdb/Directions"
# Call the tool specifying current UTC time as start time. This will ensure that the route is
# calculated based on the current traffic conditions. We also want to find the best sequence in
# which to visit the stops but do not want to change the sequence of the first stop since the
# first stop is a pre-defined start location such as an office.
result = arcpy.FindRoutes_Route(stops, "Minutes",
Reorder_Stops_to_Find_Optimal_Routes=True,
Preserve_Terminal_Stops="Preserve First",
Time_of_Day=datetime.datetime.utcnow(),
Time_Zone_for_Time_of_Day="UTC")
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 route and driving directions to a geodatabase
result.getOutput(1).save(output_routes)
result.getOutput(3).save(output_directions)
В следующем примере показано, как выполнить анализ маршрута, используя пользовательский режим передвижения.
"""This example shows how to perform a route analysis using a custom travel mode
that models trucks carrying wide load."""
import sys
import time
import datetime
import json
import arcpy
username = "<your user name>"
password = "<your password>"
route_service = "https://logistics.arcgis.com/arcgis/services;World/Route;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
arcpy.ImportToolbox(route_service)
# Set the variables to call the tool
stops = "C:/data/Inputs.gdb/Stops"
output_routes = "C:/data/Results.gdb/Routes"
output_directions = "C:/data/Results.gdb/Directions"
# 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.FindRoutes_Route(stops, "Minutes", Travel_Mode=travel_mode,
Time_of_Day=datetime.datetime(2019, 6, 25, 8, 0, 0))
# 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 route and driving directions to a geodatabase
result.getOutput(1).save(output_routes)
result.getOutput(3).save(output_directions)