Indicaciones (Network Analyst)

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ámetroExplicaciónTipo 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.

  • XMLEl archivo de indicaciones de salida se generará como un archivo XML. Además de las cadenas de texto de las indicaciones y la longitud e información de tiempo de las rutas, el archivo también contiene información sobre el tipo de maniobra y el ángulo de giro para cada indicación.
  • TEXTEl archivo de indicaciones de salida se generará como un archivo TXT simple que contiene las cadenas de caracteres de las indicaciones, la longitud y, opcionalmente, la información de tiempo para las rutas.
  • HTMLEl archivo de indicaciones de salida se generará como un archivo de HTML que contiene las cadenas de caracteres de las indicaciones, la longitud y, opcionalmente, la información de tiempo para las rutas.
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.

  • FeetPies
  • YardsYardas
  • MilesMillas
  • MetersMetros
  • KilometersKilómetros
  • NauticalMilesMillas náuticas
String
report_time
(Opcional)
  • NO_REPORT_TIMENo informa el tiempo de viaje en el archivo de indicaciones.
  • REPORT_TIMEInforma el tiempo de viaje en el archivo de indicaciones. Esta es la opción predeterminada.
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.

  • NA DesktopIndicaciones paso a paso imprimibles
  • NA NavigationIndicaciones paso a paso, diseñadas para un dispositivo de navegación desde el vehículo
  • NA CampusDirecciones para caminar giro a giro, que están diseñados para las rutas peatonales
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

NombreExplicaciónTipo de datos
output_layer

La capa de análisis de red actualizada con rutas.

Capa de Network Analyst

Muestra de código

Ejemplo 1 de Indicaciones (ventana de Python)

Ejecute la herramienta Indicaciones con todos los parámetros.

arcpy.na.Directions("Route", "TEXT", "C:/Data/Route_Directions.txt", "Miles",
                    "REPORT_TIME", "Minutes")
Ejemplo 2 de Indicaciones (flujo de trabajo)

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))

Información de licenciamiento

  • Basic: Requiere Network Analyst
  • Standard: Requiere Network Analyst
  • Advanced: Requiere Network Analyst

Temas relacionados