Путевой лист (Network Analyst)
Резюме
Создает пошаговый путевой лист на основе слоя сетевого анализа с маршрутами. Путевой лист можно записать в файл в виде текста, а также в формате XML и HTML. Если указать соответствующий стиль, путевой лист можно записать в другом формате.
Использование
-
Этот инструмент рассчитывает слой сетевого анализа, если у того еще нет корректного результата, поэтому вам не нужно рассчитывать слой сетевого анализа до создания путевого листа.
Синтаксис
Параметр | Объяснение | Тип данных |
in_network_analysis_layer |
Слой сетевого анализа для которого создается путевой лист. Путевой лист можно создавать только для слоев сетевого анализа маршрута, ближайшего пункта обслуживания и задачи выбора маршрута транспорта. | Network Analyst Layer |
file_type |
Формат выходного файла путевого листа. Этот параметр игнорируется, если у параметра Таблица стилей (Stylesheet) есть значение.
| String |
out_directions_file |
Полный путь к файлу путевого листа. Если вы указываете стиль в параметре Таблица стилей (Stylesheet), убедитесь, что расширение файла для выходного файла путевого листа совпадает с типом файла, создаваемого заданным стилем. | File |
report_units |
Задает линейные единицы измерения, в которых выражаются данные о расстояниях в файле путевого листа. Например, даже если в качестве стоимости было использовано поле длины в метрах, в путевых листов можно будет использовать мили.
| String |
report_time (дополнительно) |
| Boolean |
time_attribute (дополнительно) |
Основанный на времени атрибут стоимости, указывающий время в пути по маршруту в путевом листе. Атрибут стоимости должен существовать в наборе сетевых данных, используемом входным слоем сетевого анализа. | String |
language (дополнительно) |
Выберите язык для создания путевого листа. Список языков, который будет доступен в ниспадающем меню, зависит от установленных на компьютере языковых пакетов ArcGIS. Следует заметить, что для публикации этого инструмента в виде сервиса на отдельном сервере ArcGIS вам необходимо установить на этом сервере соответствующие языковые пакеты. При отсутствии того или иного языкового пакета на компьютере соответствующий язык не отображается в списке. Однако, вместо выбора языка можно ввести значение его кода. | String |
style_name (дополнительно) |
Выберите имя стиля форматирования для файла путевого листа.
| String |
stylesheet (дополнительно) |
Таблица стилей для создания указанного форматированного выходного файла (например, PDF, Word или HTML). Расширение файла в параметре Выходной файл путевого листа (Output Directions File) должно совпадать с типом файла, создаваемого с помощью заданной таблицы стилей. Инструмент Путевой лист (Directions) не будет использовать тип в параметре Тип выходного файла (Output File Type), если в параметре Таблица стилей (Stylesheet) указано значение. Подсказка: Если вы хотите быстро приступить к созданию собственных текстовых и HTML-стилей, скопируйте и отредактируйте стили, используемые Network Analyst. Они доступны в следующей директории: [Установочная директория ArcGIS]\ArcGIS\Desktop10.1\NetworkAnalyst\Directions\Styles. Таблица стилей HTML — Dir2PHTML.xsl, а таблица стилей в текстовом виде — Dir2PlainText.xsl. | File |
Пример кода
Выполнение инструмента Путевой лист (Directions) со всеми параметрами.
import arcpy
arcpy.na.Directions("Route","TEXT","C:/temp/Route_Directions.txt","Miles",
"REPORT_TIME","Minutes")
В следующем автономным скрипте 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 occured on line %i" % tb.tb_lineno
print str(e)