Exemple de service de géotraitement : obtenir des feuilles de route

Disponible avec une licence Network Analyst.

ElémentDescription

Objectif

Générer les feuilles de route entre des points en entrée selon le mode de déplacement établi. Cet exemple décrit comment créer, publier et utiliser un service de géotraitement pour effectuer une analyse de réseau.

Service

TravelDirections (service de géotraitement)

Outil web

GetTravelDirections

Entrée(s)

  • Au moins deux points numérisés représentant des arrêts (renseignement obligatoire)
  • Un mode de déplacement pour calculer les feuilles de route (renseignement obligatoire)
  • Une valeur de date et d’heure indiquant l’heure de départ de l’itinéraire (renseignement facultatif)

Sorties

Une classe d’entités avec les feuilles de route et la forme de l’itinéraire

Data

Un jeu de données réseau de transport pour la zone de San Diego (Californie) fourni dans le dossier ToolData

Configuration logicielle ArcGIS minimale requise

  • ArcGIS Pro 2.8 ou version ultérieure avec l’extension Network Analyst
  • ArcGIS Server 10.8.0 ou version ultérieure avec l’extension Network Analyst

A remarquer

Démontre les étapes de base requises pour créer, publier et utiliser un outil Web afin de générer des feuilles de route selon un mode de déplacement. Vous pouvez procéder de façon similaire pour créer un outil Web pour d’autres types d’analyses portant sur des réseaux de transport tels que la génération de zones isochrones autour d’un ensemble de ressources.

Détails de l’exemple

Outil GetTravelDirections

L’objectif principal de l’outil GetTravelDirections consiste à générer des feuilles de route autour de points spécifiés par l’utilisateur selon le mode de déplacement choisi. L’outil crée une classe d’entités linéaires en sortie qui montre le meilleur itinéraire reliant les points en entrée et un texte contenant les indications détaillées, ou feuille de route, pour parcourir l’itinéraire.

La table ci-dessous montre quelques colonnes de la classe d’entités en sortie créé par l’outil GetTravelDirections. Les valeurs figurant dans la colonne ElapsedTime sont exprimées selon les unités de l’attribut d’impédance basé sur le temps défini dans le mode de déplacement utilisé pour l’analyse (des minutes, dans notre exemple). Quant aux valeurs figurant dans la colonne DriveDistance, elles sont exprimées selon les unités de l’attribut d’impédance basé sur la distance défini pour le mode de déplacement (des miles, dans notre exemple).

Colonnes sélectionnées dans la sortie de l’outil GetTravelDirections

TexteElapsedTimeDriveDistance

Démarrage à l’arrêt A

0

0

Dirigez-vous vers le nord sur BRITANNIA BLVD en direction d’OTAY MESA RD

1,04

0,64

Tournez à droite sur OTAY MESA RD

1,83

2,44

Continuez tout droit sur CA-905

0,29

0,39

Continuez tout droit sur OTAY MESA RD

0,04

0,06

Restez sur la voie de gauche au carrefour vers OTAY MESA RD

0,16

0,1

Tournez à gauche

0,04

0,02

Continuez tout droit sur CA-125

7,17

10,41

Terminez à l’arrêt B, à droite

0

0

Dossier des données

Les données de ce didacticiel peuvent être téléchargées depuis ArcGIS Online. Extrayez les données dans C:\Routing\TravelDirections. Le dossier contient un projet ArcGIS Pro appelé TravelDirections.aprx. Dans ce projet, la boîte d’outils TravelDirections.tbx comporte un outil appelé GetTravelDirections qui génère des feuilles de route. Un réseau de transport, appelé Streets_ND, utilisé par l’outil GetTravelDirections est conservé dans une géodatabase fichier appelée SanDiego.gdb dans le dossier ToolData. Le jeu de données réseau est ajouté à la carte définie par défaut dans le projet sous forme d’une couche intitulée Street Network. La géodatabase schema.gdb contient la classe d’entités Stops à laquelle le fichier de couche Stops.lyrx fait référence. Ce fichier de couche permet de définir la structure et la symbologie des arrêts en entrée utilisés par l’outil GetTravelDirections.

Création de l’outil de géotraitement

L’outil de géotraitement GetTravelDirections est un exemple d’outil de script servant à offrir une fonction spécifique (dans notre exemple, pour générer des feuilles de route). Le lancement de l’outil exécute le code Python que vous rédigez dans un fichier et associez à l’outil de script. Dans le cadre de notre exemple, le code Python de l’outil GetTravelDirections est écrit dans le fichier get_directions.py. Les entrées et les sorties de l’outil de script, connues sous le nom de paramètres d’outil, sont définies dans la boîte de dialogue New Script (Nouveau script) dans ArcGIS Pro.

Définition des paramètres d’outil

L’image ci-dessous présente divers paramètres définis pour l’outil GetTravelDirections :

Paramètres de l’outil GetTravelDirections
Les paramètres de l’outil GetTravelDirections sont visibles.

L’outil utilise le type de données Feature Set pour le paramètre stops. Celui-ci offre la possibilité de spécifier les arrêts en entrée de manière interactive. La structure et la symbologie du jeu d’entités sont définies dans le fichier Stops.lyrx qui se trouve dans le dossier ToolData. Cela permet d’appliquer la contrainte selon laquelle les arrêts en entrée ne sont spécifiables qu’à l’aide d’une géométrie ponctuelle et permet également de prédéfinir le jeu de champs attributaires pris en charge par l’entrée. Si vous ne définissez pas la structure, les utilisateurs de votre service peuvent spécifier n’importe quel type de géométrie pour le jeu d’entités.

Remarque :

La spécification de la structure d’un jeu d’entités n’empêche pas les utilisateurs de votre service de transmettre des champs non pris en charge. Lors de l’implémentation de votre outil, vous pouvez énumérer tous les champs en entrée fournis au service et déterminer la manière dont l’outil doit se comporter s’il obtient des champs non définis dans la structure. Dans la plupart des cas, vous ignorez les champs non définis dans la structure.

L’outil utilise le type de données Network Dataset Layer pour le paramètre network_dataset. Cela permet de spécifier un jeu de données réseau à l’aide d’une couche du jeu de données réseau dans la carte. Les autres types de données valides pour la spécification d’un jeu de données réseau sont Network Dataset et Network Data Source. Le type de données Network Data Source permet de spécifier un jeu de données réseau sur le disque, une couche de jeu de données réseau à partir d’une carte ou d’une URL vers un portail ArcGIS Online ou ArcGIS Enterprise configuré avec les services de calcul d’itinéraires. Dans notre exemple, nous ne voulons pas utiliser les services de calcul d’itinéraire à partir d’un portail pour procéder à l’analyse ; nous n’allons donc pas choisir le type de données Network Data Source. Le type de données Network Dataset permet de spécifier un jeu de données réseau en utilisant seulement le chemin d’accès à son emplacement sur le disque. Même si l’outil GetTravelDirections fonctionne avec un jeu de données réseau spécifié par son chemin, il n’est pas recommandé. En effet, l’outil se connecte au jeu de données réseau à chaque requête, ce qui ralentit les opérations et allonge le temps de réponse à la requête.

Conseil :

L’utilisation d’une couche du jeu de données réseau améliore le temps d’exécution global de l’outil car la couche du jeu de données réseau laisse ouverte une connexion au jeu de données réseau. Autrement, si le jeu de données réseau est référencé par le chemin de son emplacement sur le disque, une connexion au jeu de données réseau est établie chaque fois que l’outil est exécuté, ce qui réduit les performances du service de géotraitement créé à l’aide de l’outil.

L’outil utilise le type de données Network Travel Mode pour le paramètre travel_mode. Le paramètre network_dataset est défini comme une dépendance du paramètre network_travel_mode. Ce faisant, l’outil lit les modes de déplacement définis sur le jeu de données réseau et renseigne leur nom comme la liste des valeurs possibles prises en charge par le paramètre travel_mode.

L’outil utilise le type de données Date pour le paramètre start_time. Ce paramètre est facultatif et ne définit pas une valeur par défaut. Dans l’implémentation de l’outil, si une valeur est transmise au paramètre start_time, cela permet de calculer le temps de trajet en fonction des vitesses de déplacement basées sur le modèle de trafic historique observé à cette date et heure-là. Si aucune valeur n’est transmise au paramètre start_time, l’outil calcule le temps de trajet selon une vitesse de déplacement fixe.

L’outil utilise le type de données Feature Class pour le paramètre output_directions. Le paramètre est marqué comme un paramètre en sortie par le biais de la définition de sa propriété Direction. La valeur par défaut de ce paramètre spécifie si la sortie est écrite dans une classe d’entités dans un espace de travail en mémoire.

Conseil :

L’écriture des sorties dans un espace de travail en mémoire plutôt que dans une géodatabase fichier optimise les performances du service de géotraitement créé par l’outil de script. La plupart du temps, vous devrez écrire les sorties des outils de géotraitement qui effectuent l’analyse de réseau sur un espace de travail en mémoire. La sortie doit être écrite dans une géodatabase fichier si vous savez que votre outil va produire des sorties de grande ampleur qui ne pourront être enregistrées dans la mémoire de la machine serveur exécutant le service de géotraitement.

Documentation de l’outil

En documentant l’outil de géotraitement, vous documentez également le service qui en résulte ainsi que ses paramètres car le traitement du service de publication copie le texte dans la description de l’élément du service. Vous devez obligatoirement documenter, c’est-à-dire décrire, le service pour que les utilisateurs comprennent bien comment interagir avec le service et générer des feuilles de route. L’outil GetTravelDirections utilisé en exemple est documenté ; vous pouvez le consulter en cliquant avec le bouton droit sur l’outil de géotraitement figurant dans la fenêtre Catalog (Catalogue) et en sélectionnant View Metadata (Afficher les métadonnées).

Définition de l’exécution de l’outil

Lorsqu’une requête est envoyée à un service de géotraitement, l’outil en arrière-plan du service exécute un fichier de script Python associé à l’outil. Vous définissez l’implémentation de votre outil dans ce fichier de script. L’extrait de code ci-dessous présente le code Python définissant l’implémentation de l’outil GetTravelDirections. Le script utilise la classe Route du module arcpy.nax afin de réaliser le calcul d’itinéraire point à point et de générer les indications détaillées de la feuille de route.

Code Python de l’implémentation de l’outil GetTravelDirections

L’extrait de code ci-dessous comporte le contenu du fichier get_directions.py inclus dans le dossier de l’outil. Il indique la procédure pour réaliser le calcul d’itinéraire point à point et exporter les indications détaillées de la feuille de route vers une classe d’entités. Le modèle général d’un type d’analyse de réseau (notamment le calcul d’itinéraire point à point illustré dans cette page) consiste à initialiser la classe du solveur propre à l’analyse, définir la configuration de l’analyse, charger les entrées, résoudre l’analyse et exporter les résultats. Les commentaires présents dans le code source (lignes commençant par #) apportent des informations supplémentaires sur les détails de l’implémentation, en particulier des conseils destinés à optimiser les performances de l’outil.

"""Generate travel directions based on a travel mode."""
import arcpy
def get_directions():
    """Generate travel directions based on a travel mode."""
    # Read inputs
    stops = arcpy.GetParameter(0)
    # Performance tip: The network data source should be read using the arcpy.GetParameterAsText()
    # method instead of the arcpy.GetParameter() method since GetParameterAsText provides
    # access to the network data source much faster
    network_data_source = arcpy.GetParameterAsText(1)
    travel_mode = arcpy.GetParameter(2)
    start_time = arcpy.GetParameter(3)
    output_directions = arcpy.GetParameterAsText(4)
    # Initialize Route solver and set analysis settings
    route_solver = arcpy.nax.Route(network_data_source)
    route_solver.travelMode = travel_mode
    route_solver.timeOfDay = start_time
    route_solver.returnDirections = True
    # Load inputs
    route_solver.load(arcpy.nax.RouteInputDataType.Stops, stops)
    # Solve. A network analyst license is required when solving
    arcpy.CheckOutExtension("network")
    result = route_solver.solve()
    # Print all the warning and error messages in case the solve is not successful
    if not result.solveSucceeded:
        arcpy.AddMessage("Solve failed")
        warning_msgs = result.solverMessages(arcpy.nax.MessageSeverity.Warning)
        error_msgs = result.solverMessages(arcpy.nax.MessageSeverity.Error)
        for msg in warning_msgs:
            arcpy.AddWarning(msg[-1])
        for msg in error_msgs:
            arcpy.AddError(msg[-1])
        raise SystemExit(1)
    # Export the directions
    result.export(arcpy.nax.RouteOutputDataType.Directions, output_directions)
if __name__ == "__main__":
    get_directions()
Remarque :

L’extrait de code ci-dessus indique comment implémenter un calcul d’itinéraire point à point à l’aide du module arcpy.nax. Notez qu’il est possible d’appliquer le schéma défini dans l’extrait de code mentionné à une autre analyse à l’aide du module arcpy.nax.

Publication de l’outil en tant qu’outil Web

Pour créer un service à partir de l’outil GetTravelDirections, vous devez publier l’outil en tant qu’outil Web. Pour ce faire, vous devez d’abord exécuter l’outil et partager le résultat sous forme d’outil Web via la fenêtre Share As Web Tool (Partager en tant qu’outil Web) dans ArcGIS Pro.

Exécution de l'outil

Pour exécuter l’outil GetTravelDirections, procédez comme suit :

  1. Ouvrez le projet TravelDirections dans ArcGIS Pro.
  2. Dans la boîte d’outils TravelDirections, ouvrez l’outil de géotraitement GetTravelDirections.
  3. Exécutez l’outil GetTravelDirections.
    1. Pour le paramètre Stops (Arrêts), créez au moins deux arrêts dans la région de San Diego sur la carte.
    2. Pour le paramètre Network Dataset (Jeu de données réseau), sélectionnez la couche Street Network ajoutée à la carte.

      Spécifier la couche Street Network au lieu de spécifier le jeu de données réseau au moyen de son emplacement sur le disque assure de meilleures performances du service de géotraitement créé à partir de l’outil.

    3. Pour le paramètre Travel Mode (Mode de déplacement), sélectionnez un mode de déplacement dans la liste de choix, par exemple : Driving Time (Temps de trajet).

      La liste de choix présentée pour le paramètre Travel Mode (Mode de déplacement) répertorie les noms des modes de déplacement issus du jeu de données réseau. En effet, le paramètre Network Dataset (Jeu de données réseau) a été défini comme une dépendance lors de la définition du paramètre Travel Mode (Mode de déplacement).

    4. N’indiquez aucune valeur pour le paramètre Start Time (Heure de début).

      Le renseignement du paramètre Start Time (Heure de début) implique que le service créé à partir de l’outil utilise par défaut cette valeur comme horaire de départ lors de la génération des feuilles de route. Or, cela ne correspond pas à ce que les utilisateurs du service souhaitent : ils préféreront sans doute déterminer eux-mêmes leur jour et heure de départ.

    5. Laissez la valeur définie par défaut pour le paramètre Output Directions (Feuille de route en sortie).

      La valeur par défaut du paramètre Output Directions (Feuille de route en sortie) est destinée à écrire la sortie de l’outil sur un espace de travail en mémoire, ce qui améliore les performances du service créé à partir de l’outil.

    6. Cliquez sur le bouton Run (Exécuter) pour exécuter l’outil.

Inscription du dossier contenant le jeu de données réseau en tant que répertoire de données

Le jeu de données réseau utilisé par l’outil GetTravelDirections doit être accessible à toutes les machines participant à votre site ArcGIS Server. Vous pouvez procéder de l’une des manières suivantes :

  • Autoriser le traitement de publication pour copier le jeu de données réseau sur un emplacement de votre site ArcGIS Server accessible à toutes les machines participantes.
  • Copier le jeu de données réseau sur toutes les machines participantes à un emplacement que vous prédéfinissez et autoriser le service à référencer les données à partir de cet emplacement.

L’option recommandée consiste à copier manuellement le jeu de données réseau sur toutes les machines participantes à un emplacement prédéfini (D:\RoutingData, par exemple). Même si cette méthode peut paraître la plus fastidieuse des deux, elle est plus efficace et contribue à de meilleures performances du service.

Sélectionnez un emplacement pour l’enregistrement des données sur chaque machine participante et non un partage de fichiers commun à toutes les machines. Le fait de stocker un jeu de données réseau dans un dossier local au lieu de recourir à un partage de fichiers optimise les performances du service de calcul d’itinéraire. Pour mettre à jour le jeu de données réseau (si, par exemple, vous avez reçu une nouvelle version des données), vous arrêtez le service de calcul d’itinéraire, remplacez la géodatabase contenant le jeu de données réseau sur toutes les machines participantes et redémarrez le service.

Lorsque vous sélectionnez l’option visant à copier les données, le traitement de la publication copie les données dans un emplacement partagé, commun à toutes les machines (lorsque plusieurs machines existent sur le site ArcGIS Server). Le service de calcul d’itinéraire lit le jeu de données réseau à partir de l’emplacement partagé, ce qui réduit les performances du service. L’emplacement utilisé par ArcGIS Server pour stocker ces données est considéré comme interne au site ArcGIS Server et est géré par ArcGIS Server. Pour procéder aux mises à jour des données, vous devez supprimer et créer de nouveau le service de calcul d’itinéraire, ce qui peut engendrer des erreurs car vous devez republier le service de calcul d’itinéraire en utilisant les mêmes réglages que précédemment. À l’inverse, si les données sont référencées par le service de calcul d’itinéraire, il vous suffit d’arrêter et de démarrer le service de calcul d’itinéraire (au lieu de recréer le service).

Pour inscrire le dossier qui contient le jeu de données réseau comme répertoire de données auprès du serveur fédéré à votre portail, procédez comme suit :

  1. Sur le ruban, cliquez sur l’onglet Share (Partager). Dans le groupe Manage (Gérer), cliquez sur Data Stores (Répertoires de données) Répertoires de données.

    La fenêtre Manage Registered Data Stores (Gérer les répertoires de données inscrits) apparaît.

  2. En haut de la fenêtre, vérifiez que la liste déroulante est définie sur Portal Items (Éléments du portail). Cliquez sur le bouton Add (Ajouter) Ajouter un élément de répertoire de données au portail et cliquez sur Folder (Dossier) Dossier.
  3. Dans la boîte de dialogue Add data store (Ajouter un répertoire de données), fournissez un titre, RoutingData, par exemple, et des balises.

    Ces métadonnées sont obligatoires pour l’élément de répertoire de données.

  4. Vous avez la possibilité de spécifier un dossier contenant l’élément de répertoire de données dans votre portail.

    Par défaut, l’élément est stocké au niveau racine de votre contenu. Vous pouvez choisir un dossier existant ou en créer un à l’aide du menu déroulant. Vous pouvez également rechercher un dossier.

  5. Pour spécifier le dossier éditeur, cliquez sur le bouton Browse (Parcourir) Parcourir, accédez au dossier qui contient le jeu de données réseau C:\Routing\TravelDirections\ToolData, puis cliquez sur OK.

    Le dossier éditeur contient les données que vous voulez inscrire à l’aide du serveur.

  6. Si les données de l’éditeur et du serveur se trouvent dans des dossiers différents, décochez la case Same as publisher folder path (Identique au chemin d’accès au dossier éditeur), puis saisissez un chemin ou accédez au accessible au serveur.
  7. Cochez la case du serveur auquel vous voulez ajouter le répertoire de données. Vous pouvez sélectionner plusieurs serveurs.
  8. Vous pouvez également cliquer sur Validate (Valider) Valider pour vérifier que le serveur peut accéder au dossier du serveur.

    Si le dossier est accessible, une confirmation Valide apparaît dans la colonne Status (Statut) en regard du nom du serveur. Dans le cas contraire, le message d’erreur L’élément de données est inaccessible s’affiche. La connexion est également validée automatiquement lorsque vous créez le répertoire de données.

  9. Sous Share with (Partager avec), définissez le mode de partage du répertoire de données :
    • Everyone (Tout le monde) : cette option rend votre répertoire de données public. Tout le monde peut y accéder et l'afficher.
    • My Organization (Mon organisation) : cette option permet le partage de votre répertoire de données avec tous les utilisateurs authentifiés de l’organisation.
    • Groups (Groupes) : cette option permet le partage de votre répertoire de données avec les groupes auxquels vous appartenez.
  10. Cliquez sur Créer.

    Le répertoire de données est créé et apparaît dans la fenêtre Manage Registered Data Stores (Gérer les répertoires de données inscrits).

Partage de l’outil en tant qu’outil Web

Pour créer un service de géotraitement à partir de l’outil GetTravelDirections, procédez comme suit :

  1. Connectez-vous à votre portail ArcGIS Enterprise en tant qu’utilisateur habilité à publier des outils Web.

    Le partage des outils Web nécessite des autorisations d’administration ou de publication des outils Web.

  2. Cliquez sur le bouton History (Historique) dans le groupe Geoprocessing (Géotraitement) de l’onglet du ruban Analysis (Analyse) pour ouvrir la fenêtre History (Historique).
  3. Cliquez avec le bouton droit sur GetTravelDirections et sélectionnez Share As (Partager en tant que) > Web Tool (Outil Web).
  4. Configurez les paramètres de service tels que le nom du service et le mode d’exécution, dans la fenêtre Share As Web Tool (Partager en tant qu’outil Web).
    1. Sous Item Details (Détails de l’élément), saisissez TravelDirections dans le champ Name (Nom).
    2. Dans Data (Données), cochez Reference registered data (Référencer les données inscrites).
    3. Dans Location (Emplacement), spécifiez ou créez éventuellement un dossier de portail afin d’y conserver l’élément de l’outil Web dans votre portail ArcGIS Enterprise.

      Si vous ne spécifiez pas une valeur pour Portal Folder (Dossier du portail), l’élément de l’outil Web est stocké au niveau racine de votre contenu.

    4. Dans Location (Emplacement), sélectionnez le serveur fédéré sur lequel vous voulez publier l’outil Web ainsi que le dossier sur le serveur fédéré qui contiendra le service de calcul d’itinéraire.

      Si vous utilisez un déploiement de base pour ArcGIS Enterprise, il n’existe qu’un seul serveur (le serveur d’hébergement) dans la liste Server and Folder (Serveur et dossier). Si vous ne spécifiez pas de nom de dossier sous Server and Folder (Serveur et dossier), le service de calcul d’itinéraire est créé dans le dossier racine de votre serveur fédéré.

    5. Dans Share With (Partager avec), précisez le mode de partage de l’outil Web.

      Par défaut, un outil Web est uniquement accessible à l’utilisateur qui l’a publié. L’outil Web peut être partagé publiquement de sorte que toute personne puisse exécuter l’outil Web, avec tous les utilisateurs authentifiés dans l’organisation ou au sein des groupes auxquels vous appartenez ainsi que leurs membres.

    6. Cliquez sur l’onglet Configuration dans la fenêtre Share As Web Tool (Partager en tant qu’outil Web).
    7. Sous Capabilities (Fonctionnalités), désactivez la case à cocher Uploads (Téléchargements).

      La fonctionnalité des téléchargements détermine si un client peut télécharger un fichier sur votre serveur pour que l’outil Web l’utilise en entrée. Le service de calcul d’itinéraire, illustré dans notre exemple, ne prend pas en charge le téléchargement des fichiers.

    8. Dans Execution Mode (Mode d’exécution), sélectionnez Synchronous (Synchrone).

      Le service de calcul d’itinéraire TravelDirections s’exécute rapidement (en moins d’une seconde généralement). Sélectionnez le mode d’exécution Synchronous (Synchrone) pour obtenir de meilleures performances. Si, toutefois, vous possédez un service de calcul d’itinéraire dont l’exécution dure plus longtemps (lors du calcul de plusieurs itinéraires dont les points sont séparés par de longue distance, par exemple) définissez le mode d’exécution sur Asynchronous (Asynchrone). Ce mode d’exécution convient en effet mieux aux requêtes de longue durée. L’utilisation du mode d’exécution asynchrone pour les services qui s’exécutent rapidement n’est pas recommandée étant donné que ce mode ajoute des tâches fixes supplémentaires à chaque exécution du service. Pour les requêtes de longue durée, la surcharge fixe induite est négligeable au vu du temps d’exécution global du service.

    9. Sous Properties (Propriétés), sélectionnez Warning (Avertissement) pour le champ Message Level (Niveau du message).

      Définir le niveau de message du service sur Warning (Avertissement) assure que les messages d’erreur et d’avertissement produits par le service sont renvoyés au client. Ils sont utiles pour diagnostiquer les difficultés liées au service, notamment la raison pour laquelle le service ne peut pas générer les feuilles de route.

    10. Sous Properties (Propriétés), utilisez la valeur par défaut pour Maximum number of records returned by server (Nombre maximal d’enregistrements retournés par le serveur).

      Le service dans cet exemple ne devrait pas produire plus de 1 000 entités de feuilles de route dans la majorité des cas. Si le service produit plus de 1 000 entités, le serveur ne renvoie aux clients que les 1 000 premières entités ; un sous-ensemble d’entités risque de ne pas présenter d’intérêt aux yeux des clients. Pour éviter cette situation, définissez une valeur plus élevée pour l’option Maximum number of records returned by server (Nombre maximal d’enregistrements retournés par le serveur). Pour les autres services de calcul d’itinéraire, vous pouvez définir cette option sur un nombre plus élevé. Si, par exemple, vous avez un service qui calcule fréquemment une matrice de coût origine-destination entre 500 origines et 500 destinations, votre service peut produire 250 000 entités. Définissez la valeur de l’option sur 250 000 ou plus dans ce cas.

    11. Cliquez sur l’onglet Content (Contenu) dans la fenêtre Share As Web Tool (Partager en tant qu’outil Web).
    12. Cliquez sur le bouton Configure Tool Properties (Propriétés de l’outil Configurer) en regard de l’outil GetTravelDirections figurant sous My Content (Mon contenu) > TravelDirections pour configurer les propriétés de l’outil Web GetTravelDirections.
    13. Développez la catégorie des paramètres Network Dataset (Jeu de données réseau) et sélectionnez Constant Value (Valeur constante) pour l’option Input Mode (Mode en entrée) option.

      Les clients utilisant le service TravelDirections n’ont pas besoin de préciser le jeu de données réseau utilisé pour générer les feuilles de route étant donné que le service fait toujours appel au même jeu de données réseau. En définissant le mode en entrée du paramètre sur une constante, vous garantissez que le paramètre n’est pas disponible pour le service créé par l’outil.

    14. Cliquez sur le bouton de retour dans l’angle supérieur gauche de la page GetTravelDirections pour revenir dans la fenêtre Share As Web Tool (Partager en tant qu’outil Web).
  5. Cliquez sur le bouton Analyze (Analyse) dans la fenêtre Share As Web Tool (Partager en tant qu’outil Web) et assurez-vous qu’aucune erreur ni aucun avertissement n’est signalé.

    L’analyseur contrôle la présence de problèmes susceptibles d’empêcher la bonne exécution de l’outil en tant que service. S’il détecte des erreurs, vous devez les corriger avant de pouvoir effectuer la publication. Si seuls des avertissements sont signalés, vous pouvez procéder à la publication dans la mesure où votre scénario prévoit des avertissements. Ainsi, lorsque vous copiez des données au lieu de référencer des données inscrites, un message d’avertissement indique que les données seront copiées sur le serveur. Cet avertissement est prévu dans ce cas de figure ; le message peut être ignoré. Vous pouvez cliquer à droite sur un message d’erreur ou d’avertissement afin de consulter la rubrique d’aide qui décrit les mesures à prendre pour corriger un problème.

  6. Cliquez sur le bouton Publish (Publier) dans la fenêtre Share As Web Tool (Partager en tant qu’outil Web) pour publier l’outil sous forme d’un service.

Utilisation de l’outil Web

Vous pouvez ouvrir les outils Web dans la section Portal (Portail) de la fenêtre Catalog (Catalogue), dans ArcGIS Pro. Outre l’exécution de l’outil dans ArcGIS Pro, le service de géotraitement peut être employé dans un script Python ou une application Web.

Les étapes mentionnées ci-dessous décrivent la façon d’exécuter l’outil GetTravelDirections avec ArcGIS Pro en tant qu’application client :

  1. Dans la fenêtre Catalog (Catalogue), cliquez sur le bouton Portal (Portail) > All Portal (L’intégralité du portail).
  2. Saisissez TravelDirections dans la barre de recherche.
  3. Double-cliquez sur la boîte d’outils TravelDirections et ouvrez l’outil GetTravelDirections.
  4. Exécutez l’outil Web GetTravelDirections.

    Le paramètre Output Feature Class Name (Nom de la classe d’entités en sortie) associé à l’outil Web est automatiquement ajouté par la structure de géotraitement puisque l’outil GetTravelDirections produit une classe d’entités. Ce paramètre permet d’écrire les résultats sous la forme d’un service d’entités stocké dans votre portail d’entreprise. Néanmoins, l’utilisation de ce paramètre connaît quelques limitations.

    Attention :

    Si vous spécifiez une valeur Output Feature Service Name (Nom du service d’entités en sortie), l’outil Web GetTravelDirections renvoie une erreur. En effet, la création de résultats en tant que service d’entités n’est pas prise en charge par un service publié via le mode d’exécution synchrone tel que le service TravelDirections de notre exemple.