Resumen
Genera indicaciones giro a giro de una capa de análisis de red con rutas. Las direcciones se escriben en un archivo de texto, XML, o formato HTML. Si proporciona una hoja de estilo adecuada, las indicaciones se pueden escribir en cualquier otro formato de archivo.
Uso
La herramienta resuelve la capa de análisis de red si no tienen ya un resultado válido, de modo que no es necesario resolver la capa de análisis de red antes de generar las indicaciones.
Sintaxis
arcpy.na.Directions(in_network_analysis_layer, file_type, out_directions_file, report_units, {report_time}, {time_attribute}, {language}, {style_name}, {stylesheet})
Parámetro | Explicación | Tipo de datos |
in_network_analysis_layer | La capa de análisis de red desde la que se generarán las indicaciones. Las direcciones se pueden generar sólo para ruta, instalación más cercana, capas de análisis de red de problema de generación de rutas para vehículos. | Network Analyst Layer |
file_type | El formato del archivo de indicaciones de salida. Este parámetro se ignora si el parámetro de hoja de estilo tiene un valor.
| String |
out_directions_file | Si proporciona una hoja de estilo en el parámetro stylesheet, asegúrese de que el sufijo de out_directions_file coincida con el tipo de archivo que produce la hoja de estilo. | File |
report_units | Especifica las unidades lineales en las que se informará la información de longitud en el archivo de indicaciones. Por ejemplo, si bien la impedancia estaba en metros, usted puede optar por mostrar las direcciones en millas.
| String |
report_time (Opcional) |
| Boolean |
time_attribute (Opcional) | El atributo de coste basado en el tiempo que proporciona los tiempos de viaje en las indicaciones. El atributo de coste debe existir en el dataset de red utilizado por la capa de análisis de red de entrada. | String |
language (Opcional) | Elija un idioma en el cual desea generar las indicaciones para conducir. La entrada de este parámetro debería ser un código de idioma de 2 o 5 caracteres que represente uno de los idiomas disponibles para la generación de indicaciones. En Python, puede recuperar una lista de los códigos de idioma disponibles con la función ListDirectionsLanguages. | String |
style_name (Opcional) | Elija el nombre del estilo de formato para las indicaciones.
| String |
stylesheet (Opcional) | Hoja de estilo para generar un tipo de archivo de salida formateado (como un archivo PDF, Word o HTML). El sufijo del archivo del parámetro Archivo de indicaciones de salida debe coincidir con el tipo de archivo generado por la hoja de estilo. La herramienta Indicaciones invalida el parámetro del tipo de archivo de salida si este parámetro contiene un valor. Sugerencia:Si desea obtener información avanzada sobre cómo crear sus propias hojas de estilo HTML y texto, copie y edite las hojas de estilo que usa Network Analyst. Puede encontrarlas en el siguiente directorio: <ArcGIS installation directory>\ArcGIS\ArcGIS Pro\Resources\NetworkAnalyst\Directions\Styles. La hoja de estilo es Dir2PHTML.xsl y la hoja de estilo de texto es Dir2PlainText.xsl. | File |
Salida derivada
Nombre | Explicación | Tipo de datos |
output_layer | La capa de análisis de red actualizada con rutas. | Capa de Network Analyst |
Muestra de código
Ejecute la herramienta Indicaciones con todos los parámetros.
arcpy.na.Directions("Route", "TEXT", "C:/Data/Route_Directions.txt", "Miles",
"REPORT_TIME", "Minutes")
La siguiente secuencia de comandos de Python independiente muestra cómo se puede utilizar la herramienta Directions para generar indicaciones de conducción en un archivo HTML para una ruta.
# 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:
#Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
if arcpy.CheckExtension("network") == "Available":
arcpy.CheckOutExtension("network")
else:
raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
#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"
travel_mode = "Driving Time"
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.MakeRouteAnalysisLayer(network, layer_name,
travel_mode, "PRESERVE_FIRST",
time_of_day="8:00 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, "",
"")
#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_[impedance] 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.
#Figure out what the impedance attrbute is
solver_props = arcpy.na.GetSolverProperties(layer_object)
impedance = solver_props.impedance
#Handle field mappings
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))
Entornos
Información de licenciamiento
- Basic: Requiere Network Analyst
- Standard: Requiere Network Analyst
- Advanced: Requiere Network Analyst