Путевой лист (Network Analyst)

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

Создает пошаговый путевой лист на основе слоя сетевого анализа с маршрутами. Путевой лист можно записать в файл в виде текста, а также в формате XML и HTML. Если указать соответствующий стиль, путевой лист можно записать в другом формате.

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

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

Параметры

ПодписьОписаниеТип данных
Входной слой сетевого анализа

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

Network Analyst Layer
Тип выходного файла

Формат выходного файла путевого листа. Этот параметр игнорируется, если параметр stylesheet содержит значение.

  • XMLВ качестве выходных данных создается HTML-файл. Кроме строк направлений и сведений о расстоянии и времени для маршрутов, файл содержит данные о типах маневров и углах поворота для каждого направления.
  • TEXTВыходной путевой лист создается в формате простого текстового файла, в который будут записаны строки путевого листа и, может быть, данные о времени в пути на маршруте.
  • HTMLВыходной файл направлений создается как простой HTML-файл, содержащий строки направлений, а также данные о расстоянии и, возможно, времени для маршрутов.
String
Выходной файл путевого листа

Полный путь к файлу путевого листа.

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

File
Сообщать длину в этих единицах

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

String
Сообщить время перемещения
(Дополнительный)
  • Установлено – сообщать время в пути в файле путевого листа. Это значение используется по умолчанию.
  • Не установлено — не сообщать время в пути в файле путевого листа.
Boolean
Атрибут времени
(Дополнительный)

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

String
Язык
(Дополнительный)

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

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

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

Выберите имя стиля форматирования для направлений.

  • NA DesktopПошаговый путевой лист, доступный для печати
  • NA NavigationПошаговый путевой лист, созданный для автомобильного навигационного устройства.
  • NA CampusПошаговый пешеходный путевой лист, созданный для пешеходных маршрутов.
String
Таблица стилей
(Дополнительный)

Стиль для создания форматированного выходного файла (например, PDF, Word или HTML). Суффикс файла в параметре выходного файла путевого листа должен совпадать с типом файла, создаваемого заданным стилем. Инструмент Путевой лист заменяет параметр типа выходного файла, если этот параметр содержит значение.

File

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

ПодписьОписаниеТип данных
Слой сетевого анализа

Обновленный слой сетевого анализа с маршрутами.

Слой Network Analyst

arcpy.management.Directions(in_network_analysis_layer, file_type, out_directions_file, report_units, {report_time}, {time_attribute}, {language}, {style_name}, {stylesheet})
ИмяОписаниеТип данных
in_network_analysis_layer

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

Network Analyst Layer
file_type

Формат выходного файла путевого листа. Этот параметр игнорируется, если параметр stylesheet содержит значение.

  • XMLВ качестве выходных данных создается HTML-файл. Кроме строк направлений и сведений о расстоянии и времени для маршрутов, файл содержит данные о типах маневров и углах поворота для каждого направления.
  • TEXTВыходной путевой лист создается в формате простого текстового файла, в который будут записаны строки путевого листа и, может быть, данные о времени в пути на маршруте.
  • HTMLВыходной файл направлений создается как простой HTML-файл, содержащий строки направлений, а также данные о расстоянии и, возможно, времени для маршрутов.
String
out_directions_file

Если вы определите таблицу стилей для параметра stylesheet, убедитесь, что суффикс файла для out_directions_file соответствует типу файла, создаваемого заданным стилем.

File
report_units

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

  • FeetФуты
  • YardsЯрды
  • MilesМили
  • MetersМетры
  • KilometersКилометры
  • NauticalMilesМорские мили
String
report_time
(Дополнительный)
  • NO_REPORT_TIMEНе сообщать время в пути в файле путевого листа.
  • REPORT_TIMEСообщать время в пути в файле путевого листа. Используется по умолчанию.
Boolean
time_attribute
(Дополнительный)

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

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

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

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

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

Выберите имя стиля форматирования для направлений.

  • NA DesktopПошаговый путевой лист, доступный для печати
  • NA NavigationПошаговый путевой лист, созданный для автомобильного навигационного устройства.
  • NA CampusПошаговый пешеходный путевой лист, созданный для пешеходных маршрутов.
String
stylesheet
(Дополнительный)

Стиль для создания форматированного выходного файла (например, PDF, Word или HTML). Суффикс файла в параметре выходного файла путевого листа должен совпадать с типом файла, создаваемого заданным стилем. Инструмент Путевой лист заменяет параметр типа выходного файла, если этот параметр содержит значение.

File

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

ИмяОписаниеТип данных
output_layer

Обновленный слой сетевого анализа с маршрутами.

Слой Network Analyst

Пример кода

Directions, пример 1 (окно Python)

Выполнение инструмента Directions со всеми параметрами.

arcpy.na.Directions("Route", "TEXT", "C:/Data/Route_Directions.txt", "Miles",
                    "REPORT_TIME", "Minutes")
Directions, пример 2 (рабочий процесс)

В следующем автономным скрипте Python показано, как с помощью функции Directions можно создавать направления движения в виде HTML-файла для маршрута.

# Name: Directions_Workflow.py
# Description: Generate driving directions in an html file for a route that
#              visits the store locations in the best sequence in order to
#              minimize the total travel time
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env
import os

try:
    #Set environment settings
    output_dir = "C:/Data"
    #The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    #Set inputs and outputs
    input_gdb = "C:/Data/SanFrancisco.gdb"
    network = os.path.join(input_gdb, "Transportation", "Streets_ND")
    layer_name = "StoreRoute"
    impedance = "TravelTime"
    start_location = os.path.join(input_gdb, "Analysis", "DistributionCenter")
    store_locations = os.path.join(input_gdb, "Analysis", "Stores")
    output_directions = os.path.join(output_dir,
                                                layer_name + "_Directions.html")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Create a new route layer. The route starts at the distribution center and
    #visits the stores in the best order to yield the shortest travel time.
    result_object = arcpy.na.MakeRouteLayer(network, layer_name, impedance,
                                         "FIND_BEST_ORDER", "PRESERVE_FIRST",
                                         "", ['Meters'], "NO_UTURNS",
                                         start_date_time="8 AM")

    #Get the layer object from the result object. The route layer can
    #now be referenced using the layer object.
    layer_object = result_object.getOutput(0)

    #Get the names of all the sublayers within the route layer.
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    #Stores the layer names that we will use later
    stops_layer_name = sublayer_names["Stops"]

    #Load the distribution center as the start location using default field
    #mappings and search tolerance
    arcpy.na.AddLocations(layer_object, stops_layer_name, start_location, "",
                            "", exclude_restricted_elements = "EXCLUDE")

    #Load the store locations as stops. Make sure the store locations are
    #appended to the Stops sublayer so the distribution center you just loaded
    #isn't overwritten. Map the ServiceTime field from the input data to the
    #Attr_TravelTime property in the Stops sublayer so that the time it takes to
    #service each store is included in the total travel time for the route.
    field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
                                                            stops_layer_name)
    field_mappings["Name"].mappedFieldName = "Name"
    field_mappings["Attr_" + impedance].mappedFieldName = "ServiceTime"
    arcpy.na.AddLocations(layer_object, stops_layer_name, store_locations,
                          field_mappings, "", append="APPEND",
                          exclude_restricted_elements = "EXCLUDE")

    #Generate driving directions in an HTML file
    arcpy.na.Directions(layer_object, "HTML", output_directions, "Miles",
                        "REPORT_TIME", impedance)

    #Save the solved na layer as a layer file on disk
    layer_object.saveACopy(output_layer_file)

    print("Script completed successfully")

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print(("An error occurred on line %i" % tb.tb_lineno))
    print((str(e)))