API Routes (Calcul d’itinéraires par lot)

Utilisez Routes pour calculer plusieurs itinéraires dans une seule requête. REST renvoie du JSON, tandis que SOAP utilise CalculateRoutes pour les flux de calcul d’itinéraires par lot et les intégrations héritées.

Illustration de l’API Routes de TrackRoad calculant plusieurs itinéraires dans une seule requête et renvoyant les distances et les temps.
Routes calcule plusieurs itinéraires en un seul appel, ce qui la rend utile pour la planification massive d’itinéraires, la comparaison d’itinéraires et les workflows de routage par lot.

Besoin du contrat API complet ?

Swagger couvre les modèles REST, tandis que le WSDL SOAP prend en charge les intégrations héritées TrackService.

Voir Swagger UI Voir le WSDL SOAP Vue d’ensemble de la référence API

Table des matières

  1. Ce que fait Routes
  2. Endpoints et URL de base
  3. Authentification (REST et SOAP)
  4. Schéma de requête
  5. Schéma de réponse
  6. Exemples
  7. Erreurs courantes
  8. Bonnes pratiques
  9. Endpoints associés
  10. FAQ

Ce que fait Routes#

Routes calcule un ou plusieurs itinéraires dans une seule requête. Cela est utile lorsque vous avez besoin d’un calcul d’itinéraires par lot plutôt que d’envoyer de nombreux appels unitaires.

Chaque itinéraire utilise une liste ordonnée d’entrées Location et des RouteOptions facultatives. Vous pouvez également définir un objet global RoutesOptions qui applique des valeurs par défaut à l’ensemble de la requête.

Conseil : Si vous n’avez besoin que d’un seul itinéraire, utilisez l’ API Route . Si vous devez calculer plusieurs itinéraires à la fois, utilisez Routes.

Endpoints et URL de base#

REST (JSON)

Élément Valeur
URL de base https://trackservice.trackroad.com
Endpoint POST /rest/routes
URL complète https://trackservice.trackroad.com/rest/routes
Content-Type application/json

SOAP (CalculateRoutes)

Élément Valeur
URL SOAP https://trackservice.trackroad.com/TrackService.asmx
WSDL https://trackservice.trackroad.com/TrackService.asmx?WSDL
Méthode CalculateRoutes
SOAPAction http://TrackService.TrackRoad.com/CalculateRoutes
Content-Type text/xml; charset=utf-8

SOAP et REST partagent les mêmes concepts de routage fondamentaux, comme RouteSpecification, RouteOptions et Location. La principale différence concerne le transport : JSON pour REST et enveloppe SOAP + SessionIDHeader pour SOAP.

Authentification (REST et SOAP)#

Authentification REST (X-API-Key)

Incluez votre TrackServiceKey dans l’en-tête X-API-Key pour chaque requête REST. Voir Authentification API .

Authentification SOAP (SessionIDHeader)

Les requêtes SOAP utilisent SessionIDHeader. Envoyez votre TrackServiceKey comme SessionID à chaque appel CalculateRoutes.

Recommandation : utilisez REST sauf si vous devez vous intégrer à un système d’entreprise existant ou uniquement SOAP.

Schéma de requête#

Le corps de la requête REST est un objet unique de type lot : RoutesSpecification, qui contient une liste d’éléments RouteSpecification. SOAP utilise la même structure logique dans l’opération CalculateRoutes.

Modèles partagés

Location, LatLong et Address sont partagés entre plusieurs endpoints. Voir API Dispatch (modèles partagés) .

RoutesSpecification (REST)

Propriété Type Obligatoire Description
Specifications RouteSpecification[] Oui* Un élément par itinéraire que vous souhaitez calculer dans la requête par lot.
RoutesOptions RouteOptions Non Valeurs par défaut globales appliquées à chaque itinéraire, sauf remplacement par des RouteOptions propres à l’itinéraire.

RouteSpecification

Propriété Type Obligatoire Description
Locations Location[] Oui* Arrêts de cet itinéraire. L’ordre peut être optimisé selon les RouteOptions.
RouteOptions RouteOptions Non Surcharges par itinéraire pour le moteur de routage, les unités, le mode d’optimisation, la culture et les options cartographiques.

RouteOptions (résumé)

Les champs RouteOptions tels que RoutingService, DistanceUnit, RouteOptimize, Culture et les paramètres liés à la carte sont similaires à ceux du endpoint Route et peuvent être appliqués globalement ou par itinéraire.

Schéma de réponse#

Réponse REST (RoutesResult)

Propriété Type Description
Results RouteResult[] Un résultat par RouteSpecification fournie en entrée.
Map string Sortie cartographique facultative selon les options. Peut être vide.
Errors Error[] Avertissements et erreurs facultatifs renvoyés par le service.
Status int (enum) 0=None, 1=Success, 2=Failed, 3=SuccessWithErrors.

Réponse SOAP (CalculateRoutesResult)

SOAP encapsule la même structure logique de résultat dans CalculateRoutesResponse et CalculateRoutesResult.

Exemples#

Utilisez les exemples ci-dessous pour comprendre comment fonctionne TrackRoad Routes avec REST JSON et SOAP CalculateRoutes. Les blocs de code d’exemple doivent rester inchangés d’une langue à l’autre.

REST request body (JSON)#

{
  "Locations": [
    { "Name": "Start", "LatLong": { "Latitude": 37.7946, "Longitude": -122.3950 }, "LocationType": 1 },
    { "Name": "Stop A", "LatLong": { "Latitude": 37.7897, "Longitude": -122.4011 }, "LocationType": 0 },
    { "Name": "Finish", "LatLong": { "Latitude": 37.7810, "Longitude": -122.4110 }, "LocationType": 2 }
  ],
  "RouteOptions": {
    "RoutingService": 2,
    "DistanceUnit": 0,
    "RouteOptimize": 0,
    "Culture": "en-US",
    "ZoomLevel": 0
  }
}

REST call examples#

curl -X POST "https://trackservice.trackroad.com/rest/Route" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_TRACKSERVICEKEY" \
  -d @route-request.json

SOAP request (CalculateRoute)#

SOAP requires SessionIDHeader. Replace YOUR_SESSION_ID with the session id returned from SOAP Login.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <SessionIDHeader xmlns="http://TrackService.TrackRoad.com/">
      <SessionID>YOUR_SESSION_ID</SessionID>
    </SessionIDHeader>
  </soap:Header>

  <soap:Body>
    <CalculateRoute xmlns="http://TrackService.TrackRoad.com/">
      <specification>
        <Locations>
          <Location>
            <Name>Start</Name>
            <LatLong><Latitude>37.7946</Latitude><Longitude>-122.3950</Longitude></LatLong>
            <LocationType>Start</LocationType>
          </Location>

          <Location>
            <Name>Stop A</Name>
            <LatLong><Latitude>37.7897</Latitude><Longitude>-122.4011</Longitude></LatLong>
            <LocationType>Midway</LocationType>
          </Location>

          <Location>
            <Name>Finish</Name>
            <LatLong><Latitude>37.7810</Latitude><Longitude>-122.4110</Longitude></LatLong>
            <LocationType>Finish</LocationType>
          </Location>
        </Locations>

        <RouteOptions>
          <RoutingService>Bing</RoutingService>
          <DistanceUnit>Mile</DistanceUnit>
          <RouteOptimize>MinimizeTime</RouteOptimize>
          <Culture>en-US</Culture>
          <ZoomLevel>0</ZoomLevel>
        </RouteOptions>
      </specification>
    </CalculateRoute>
  </soap:Body>
</soap:Envelope>

SOAP call examples#

curl -X POST "https://trackservice.trackroad.com/TrackService.asmx" \
  -H "Content-Type: text/xml; charset=utf-8" \
  -H "SOAPAction: http://TrackService.TrackRoad.com/CalculateRoute" \
  -d @calculate-route.xml

Response example (REST JSON)#

{
  "Route": {
    "Distance": 5.42,
    "Time": 1180,
    "RouteLegs": [
      {
        "Distance": 2.10,
        "Time": 480,
        "Itinerary": {
          "Items": [
            {
              "Distance": 0.2,
              "Time": 40,
              "Text": "Head north on ...",
              "LatLong": { "Latitude": 37.79, "Longitude": -122.39 }
            }
          ]
        }
      }
    ],
    "Points": [
      { "Latitude": 37.7946, "Longitude": -122.3950 },
      { "Latitude": 37.7897, "Longitude": -122.4011 }
    ],
    "Map": null
  },
  "Errors": [],
  "Status": 1
}

Erreurs courantes#

  • REST 401 / Unauthorized : X-API-Key manquant ou invalide.
  • REST 403 / Forbidden : la clé est valide mais bloquée, expirée ou sans crédit disponible.
  • Échec d’authentification SOAP : SessionIDHeader manquant ou invalide. SessionID doit être votre TrackServiceKey.
  • Erreurs de validation : Locations manquantes, coordonnées invalides ou valeurs enum non valides.

Bonnes pratiques#

  • Groupez intelligemment : placez plusieurs calculs d’itinéraires dans un seul appel Routes pour réduire la surcharge des requêtes.
  • Privilégiez LatLong : fournissez des coordonnées lorsque c’est possible pour réduire l’ambiguïté du géocodage et améliorer les performances.
  • Utilisez des RoutesOptions globales : définissez les valeurs partagées une seule fois et ne les remplacez que lorsque nécessaire pour chaque itinéraire.
  • Gardez des options cohérentes : mélanger moteurs de routage, unités ou modes d’optimisation entre plusieurs itinéraires peut compliquer les comparaisons.

FAQ#

Que fait l’API Routes ?
L’API Routes calcule un ou plusieurs itinéraires dans une seule requête. Chaque résultat peut inclure des emplacements ordonnés, une distance, un temps et une sortie cartographique facultative selon les options.
Comment m’authentifier sur Routes (REST et SOAP) ?
Les requêtes REST envoient le TrackServiceKey dans l’en-tête X-API-Key. Les requêtes SOAP CalculateRoutes envoient le TrackServiceKey dans SessionIDHeader en tant que SessionID.
Quand faut-il utiliser Routes plutôt que Route ?
Utilisez Route lorsque vous devez calculer un seul itinéraire. Utilisez Routes lorsque vous souhaitez calculer plusieurs itinéraires dans une seule requête par lot.
Quelles sont les erreurs les plus courantes de l’API Routes ?
Les erreurs courantes incluent un X-API-Key manquant ou invalide, des échecs d’authentification SOAP avec SessionIDHeader, des Locations manquantes, des coordonnées invalides et des valeurs enum non valides.

Étape suivante : optimiser entre plusieurs véhicules

Si vous devez attribuer des arrêts à plusieurs véhicules et optimiser l’ordre des arrêts par véhicule, poursuivez avec l’API Dispatch.

Aller à Dispatch Swagger UI