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})
Parameter | Erklärung | Datentyp |
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.
| 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.
| String |
report_time (optional) |
| 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.
| 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
Name | Erklärung | Datentyp |
output_layer | Der aktualisierte Netzwerkanalyse-Layer mit Routen. | Network Analyst-Layer |
Codebeispiel
Führen Sie das Werkzeug "Wegbeschreibung" mit allen Parametern aus.
arcpy.na.Directions("Route", "TEXT", "C:/Data/Route_Directions.txt", "Miles",
"REPORT_TIME", "Minutes")
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))
Umgebungen
Lizenzinformationen
- Basic: Erfordert Network Analyst
- Standard: Erfordert Network Analyst
- Advanced: Erfordert Network Analyst