Résumé
Génère une feuille de route tournant par tournant à partir d'une couche d'analyse de réseau avec des itinéraires. La feuille de route peut être enregistrée dans un fichier au format texte, XML ou HTML. Si vous fournissez une feuille de style appropriée, la feuille de route peut être enregistrée dans un autre format de fichier.
Utilisation
L'outil résout la couche d'analyse du réseau s'il ne possède pas déjà un résultat valide. Il n'est donc pas indispensable de résoudre la couche d'analyse du réseau avant de générer la feuille de route.
Syntaxe
arcpy.na.Directions(in_network_analysis_layer, file_type, out_directions_file, report_units, {report_time}, {time_attribute}, {language}, {style_name}, {stylesheet})
Paramètre | Explication | Type de données |
in_network_analysis_layer | Couche d'analyse de réseau pour laquelle la feuille de route est générée. Il est possible de générer la feuille de route uniquement pour les couches d'analyse de réseau itinéraire, ressource la plus proche et tournée de véhicules. | Network Analyst Layer |
file_type | Format du fichier de directions en sortie. Ce paramètre est ignoré si le paramètre de feuille de style possède une valeur.
| String |
out_directions_file | Si vous fournissez une feuille de style dans le paramètre stylesheet, vérifiez que le suffixe du fichier out_directions_file correspond au type de fichier que votre feuille de style produit. | File |
report_units | Précise les unités linéaires dans lesquelles les informations relatives à la longueur seront consignées dans le fichier de directions. Par exemple, bien que votre impédance soit en mètres, vous pouvez afficher des feuilles de route en miles.
| String |
report_time (Facultatif) |
| Boolean |
time_attribute (Facultatif) | Attribut de coût basé sur le temps pour fournir les temps de déplacement dans la feuille de route. L'attribut de coût doit exister sur le jeu de données réseau utilisé par la couche d'analyse de réseau en entrée. | String |
language (Facultatif) | Choisissez un langage dans lequel générer des trajets. L’entrée pour ce paramètre doit être un code de langue à deux ou cinq caractères correspondant à une des langues disponibles pour générer la feuille de route. Dans Python, vous pouvez récupérer la liste des codes de langue disponibles à l’aide de la fonction ListDirectionsLanguages. | String |
style_name (Facultatif) | Choisissez le nom du style de mise en forme pour la feuille de route.
| String |
stylesheet (Facultatif) | Feuille de style permettant de générer un type de fichier en sortie dans un format (tel que PDF, Word ou HTML). Le suffixe du fichier dans le paramètre Output Directions File (Fichier de feuille de route en sortie) doit correspondre au type de fichier que la feuille de style génère. L'outil Feuille de route remplace le paramètre Type de fichier en sortie si ce paramètre contient une valeur. Astuce :Si vous souhaitez accélérer la création de votre propre texte et de vos feuilles de style HTML, copiez et modifiez les feuilles de style que Network Analyst utilise. Vous les trouverez dans le répertoire suivant : <ArcGIS installation directory>\ArcGIS\ArcGIS Pro\Resources\NetworkAnalyst\Directions\Styles. La feuille de style est Dir2PHTML.xsl et la feuille de style de texte est Dir2PlainText.xsl. | File |
Sortie dérivée
Nom | Explication | Type de données |
output_layer | Couche d’analyse de réseau mise à jour avec des itinéraires. | Couche Network Analyst |
Exemple de code
Exécutez l'outil Feuille de route avec tous les paramètres.
arcpy.na.Directions("Route", "TEXT", "C:/Data/Route_Directions.txt", "Miles",
"REPORT_TIME", "Minutes")
Le script Python autonome suivant illustre l'utilisation de l'outil Directions pour générer des trajets dans un fichier HTML pour un itinéraire.
# 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))
Environnements
Informations de licence
- Basic: Requiert Network Analyst
- Standard: Requiert Network Analyst
- Advanced: Requiert Network Analyst
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?