Сводка
Создает пошаговый путевой лист на основе слоя сетевого анализа с маршрутами. Путевой лист можно записать в файл в виде текста, а также в формате XML и HTML. Если указать соответствующий стиль, путевой лист можно записать в другом формате.
Использование
Этот инструмент рассчитывает слой сетевого анализа, если у того еще нет корректного результата, поэтому ему не нужно рассчитывать слой сетевого анализа до создания путевого листа.
Синтаксис
arcpy.na.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 содержит значение.
| String |
out_directions_file | Если вы определите таблицу стилей для параметра stylesheet, убедитесь, что суффикс файла для out_directions_file соответствует типу файла, создаваемого заданным стилем. | File |
report_units | Задает линейные единицы измерения, в которых выражаются данные о расстояниях в файле путевого листа. Например, даже если импеданс задан в метрах, направления можно задавать в милях.
| String |
report_time (Дополнительный) |
| Boolean |
time_attribute (Дополнительный) | Основанный на времени стоимостный атрибут, указывающий время в пути по направлениям. Стоимостный атрибут должен существовать в наборе сетевых данных, используемом входным слоем сетевого анализа. | String |
language (Дополнительный) | Выберите язык для создания путевого листа. Список языков, доступный в раскрывающемся меню, зависит от установленных на компьютере языковых пакетов ArcGIS. Следует заметить, что для публикации этого инструмента как части сервиса на отдельном сервере ArcGIS, необходимо установить на сервере соответствующие языковые пакеты. При отсутствии того или иного языкового пакета на компьютере соответствующий язык не отображается в списке. Однако вместо выбора языка можно указать его код. | String |
style_name (Дополнительный) | Выберите имя стиля форматирования для путевого листа.
| 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 a html file for a route that
# visits the store locations in the best sequence that minimizes
# the total travel time
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
try:
#Check out the Network Analyst extension license
arcpy.CheckOutExtension("Network")
#Set environment settings
env.workspace = "C:/data/SanFrancisco.gdb"
env.overwriteOutput = True
#Set local variables
inNetworkDataset = "Transportation/Streets_ND"
outNALayerName = "StoreRoute"
impedanceAttribute = "TravelTime"
startLocation = "Analysis/DistributionCenter"
storeLocations = "Analysis/Stores"
#fieldMappings = "Name Name #; Attr_TravelTime ServiceTime #"
outDirectionsFile = "C:/data/output" + "/" + outNALayerName + "Directions.html"
outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
#Create a new route layer. The route starts at the distribution center and
#takes the best sequence to visit the store locations.
outNALayer = arcpy.na.MakeRouteLayer(inNetworkDataset, outNALayerName,
impedanceAttribute, "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.
outNALayer = outNALayer.getOutput(0)
#Get the names of all the sublayers within the route layer.
subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
#Stores the layer names that we will use later
stopsLayerName = subLayerNames["Stops"]
#Load the distribution center as the start location using default field
#mappings and search tolerance
arcpy.na.AddLocations(outNALayer,stopsLayerName,startLocation,"","",
exclude_restricted_elements = "EXCLUDE")
#Load the store locations as stops. Make sure the store locations are
#appended to the Stops sublayer which already contains the distribution
#center location. Map the Attr_TravelTime property from the ServiceTime
#field so that the total travel time for the route will also contain the
#service time using the field mappings
fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, stopsLayerName)
fieldMappings["Name"].mappedFieldName = "Name"
fieldMappings["Attr_" + impedanceAttribute].mappedFieldName = "ServiceTime"
arcpy.na.AddLocations(outNALayer, stopsLayerName, storeLocations,
fieldMappings, "", append="APPEND",
exclude_restricted_elements = "EXCLUDE")
#Generate driving directions in a HTML file
arcpy.na.Directions(outNALayer,"HTML",outDirectionsFile,"Miles",
"REPORT_TIME",impedanceAttribute)
#Save the solved na layer as a layer file on disk using relative paths
arcpy.SaveToLayerFile_management(outNALayer,outLayerFile,"RELATIVE")
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)
Параметры среды
Информация о лицензиях
- Basic: Требуется Network Analyst
- Standard: Требуется Network Analyst
- Advanced: Требуется Network Analyst