Wegbeschreibung (Network Analyst)

Zusammenfassung

Generiert detaillierte Wegbeschreibungen aus einem Netzwerkanalyse-Layer mit Routen. Die Wegbeschreibungen können in eine Datei im Text-, XML- oder HTML-Format geschrieben werden. Bei Angabe eines geeigneten Stylesheets können die Wegbeschreibungen auch in einem beliebigen anderen Dateiformat gespeichert werden.

Verwendung

  • Das Werkzeug berechnet den Netzwerkanalyse-Layer, wenn noch kein gültiges Ergebnis vorliegt. Es ist daher nicht erforderlich, den Netzwerkanalyse-Layer vor dem Generieren von Wegbeschreibungen zu berechnen.

Syntax

arcpy.na.Directions(in_network_analysis_layer, file_type, out_directions_file, report_units, {report_time}, {time_attribute}, {language}, {style_name}, {stylesheet})
ParameterErklärungDatentyp
in_network_analysis_layer

Netzwerkanalyse-Layer, für den Wegbeschreibungen generiert werden. Wegbeschreibungen können nur für Netzwerkanalyse-Layer für Routen, nächstgelegene Einrichtungen und Vehicle Routing Problems generiert werden.

Network Analyst Layer
file_type

Das Format der Ausgabe-Wegbeschreibungsdatei. Dieser Parameter wird ignoriert, wenn der Stylesheet-Parameter einen Wert aufweist.

  • XMLDie Ausgabe-Wegbeschreibungsinformationen werden als XML-Datei erstellt. Neben Wegbeschreibungsangaben und Längen- und Zeitinformationen für die Routen enthält die Datei auch Informationen zum Manövertyp und dem Kantenübergangswinkel für jede Wegbeschreibung.
  • TEXTDie Ausgabe-Wegbeschreibungsdatei wird als einfache Textdatei generiert, die die Wegbeschreibungsangaben, Längeninformationen und optional die Zeitinformationen für die Routen enthält.
  • HTMLDie Ausgabe-Wegbeschreibungsdatei wird als HTML-Datei mit dem Wegbeschreibungstext, der Länge und optional den Zeitangaben für die Routen generiert.
String
out_directions_file

Wenn Sie im stylesheet-Parameter ein Stylesheet angeben, muss das Dateisuffix für out_directions_file dem Dateityp entsprechen, der durch das Stylesheet erzeugt wird.

File
report_units

Gibt die linearen Einheiten an, in denen die Längeninformationen in der Wegbeschreibungsdatei ausgegeben werden. So können Sie beispielsweise die Wegbeschreibung in Meilen anzeigen, obwohl die Impedanz in Metern angegeben war.

  • FeetFuß
  • YardsYards
  • MilesMeilen
  • MetersMeter
  • KilometersKilometer
  • NauticalMilesSeemeilen
String
report_time
(optional)
  • NO_REPORT_TIMEFahrzeiten werden in der Wegbeschreibungsdatei nicht angegeben.
  • REPORT_TIMEFahrzeiten werden in der Wegbeschreibungsdatei angegeben. Dies ist die Standardeinstellung.
Boolean
time_attribute
(optional)

Das zeitbasierte Kostenattribut, durch das die Reisezeiten in der Wegbeschreibung bereitgestellt werden. Das Kostenattribut muss auf dem vom Eingabe-Netzwerkanalyse-Layer verwendeten Netzwerk-Dataset vorhanden sein.

String
language
(optional)

Wählen Sie die Sprache aus, in der die Wegbeschreibung generiert werden soll.

Die Eingabe für diesen Parameter sollte ein aus zwei oder fünf Zeichen bestehender Sprachcode, der eine der für die Erstellung von Wegbeschreibungen verfügbaren Sprachen angibt, sein. In Python können Sie mit der Funktion ListDirectionsLanguages eine Liste der verfügbaren Sprachcodes abrufen.

String
style_name
(optional)

Wählen Sie den Namen des Formatierungsstils für die Wegbeschreibung aus.

  • NA DesktopDruckbare Wegbeschreibung
  • NA NavigationWegbeschreibung für ein Navigationsgerät im Fahrzeug
  • NA CampusWegbeschreibung für Fußgänger
String
stylesheet
(optional)

Das Stylesheet für die Erstellung eines formatierten Ausgabedateityps (z. B. eine PDF-, Word- oder HTML-Datei). Das Suffix der Datei im Parameter für die Ausgabe-Wegbeschreibungsdatei muss dem Dateityp entsprechen, der durch das Stylesheet generiert wird. Das Werkzeug Wegbeschreibung überschreibt den Parameter für den Ausgabedateityp, wenn für das Stylesheet ein Wert angegeben ist.

Tipp:

Sie können den Aufwand zum Erstellen eigener Text- und HTML-Stylesheets gering halten, indem Sie die von Network Analyst verwendeten Stylesheets kopieren und bearbeiten. Sie finden diese in folgendem Verzeichnis: <ArcGIS installation directory>\ArcGIS\ArcGIS Pro\Resources\NetworkAnalyst\Directions\Styles. Das Stylesheet ist Dir2PHTML.xsl, und das Text-Stylesheet ist Dir2PlainText.xsl.

File

Abgeleitete Ausgabe

NameErklärungDatentyp
output_layer

Der aktualisierte Netzwerkanalyse-Layer mit Routen.

Network Analyst-Layer

Codebeispiel

Wegbeschreibung: Beispiel 1 (Python-Fenster)

Führen Sie das Werkzeug "Wegbeschreibung" mit allen Parametern aus.

arcpy.na.Directions("Route", "TEXT", "C:/Data/Route_Directions.txt", "Miles",
                    "REPORT_TIME", "Minutes")
Wegbeschreibung: Beispiel 2 (Workflow)

Das folgende eigenständige Python-Skript veranschaulicht, wie Sie mit dem Werkzeug Directions eine Wegbeschreibung für eine Route in einer HTML-Datei generieren.

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

Lizenzinformationen

  • Basic: Erfordert Network Analyst
  • Standard: Erfordert Network Analyst
  • Advanced: Erfordert Network Analyst

Verwandte Themen