Route API (Enkele route)

Gebruik Route om een enkele route te genereren met totale afstand en reistijd , gedetailleerde reisstappen en route- punten . Gebruik voor optimalisatie met meerdere voertuigen Dispatch .

TrackRoad Route API die een enkele route genereert met afstand, reistijd en stapsgewijze routebeschrijvingen
Voorbeeld van planning van een enkele route met afstand, ETA en routegeometrie die door de Route API worden teruggegeven.

Heb je het volledige contract nodig?

Swagger bevat het volledige schema, de modellen en endpointdetails voor Route en gerelateerde API's.

Swagger UI bekijken Overzicht API-referentie

Inhoudsopgave

  1. Wat Route doet
  2. Endpoints en basis-URL (REST + SOAP)
  3. Authenticatie
  4. Aanvraagschema
  5. Responseschema
  6. Voorbeelden
  7. Veelvoorkomende fouten
  8. Best practices
  9. Gerelateerde endpoints
  10. FAQ

Wat Route doet#

Route berekent één route door een lijst met locaties. Het retourneert totale afstand en reistijd, routetrajecten met route-instructies, routepunten en optionele kaartuitvoer, afhankelijk van de geselecteerde opties.

LatLong heeft de voorkeur. Als je coördinaten voor een locatie weglaat, moet je een Adres opgeven. Gedeelde modellen zoals Location, LatLong en Address zijn gedocumenteerd in de Dispatch API .

Endpoints en basis-URL (REST + SOAP)#

REST

Item Waarde
Basis-URL https://trackservice.trackroad.com
Endpoint POST /rest/Route
Volledige URL https://trackservice.trackroad.com/rest/Route
Content-Type application/json
Auth X-API-Key: YOUR_TRACKSERVICEKEY

SOAP

Item Waarde
WSDL https://trackservice.trackroad.com/TrackService.asmx?wsdl
SOAP-endpoint https://trackservice.trackroad.com/TrackService.asmx
Operatie CalculateRoute
SOAPAction http://TrackService.TrackRoad.com/CalculateRoute
Namespace http://TrackService.TrackRoad.com/
Content-Type text/xml; charset=utf-8
Auth-header SessionIDHeader met SessionID

Authenticatie#

REST-authenticatie (X-API-Key)

Neem je TrackServiceKey op in de X-API-Key -header bij elk REST-verzoek. Genereer deze in API-authenticatie .

SOAP-authenticatie (SessionIDHeader)

SOAP-calls gebruiken een SessionIDHeader. Gebruikelijke flow:

  1. Roep Login (SOAP) aan met je gebruikersnaam en wachtwoord.
  2. Lees de geretourneerde SessionIDHeader die de SessionID bevat.
  3. Stuur die SessionID mee in de SOAP-header voor CalculateRoute-verzoeken.

REST- en SOAP-authenticatie zijn gescheiden. REST gebruikt X-API-Key. SOAP gebruikt SessionIDHeader.

Aanvraagschema#

De REST-requestbody is RouteSpecification. . SOAP gebruikt dezelfde logische structuur in XML. Gedeelde modellen zijn gedocumenteerd in Dispatch API .

RouteSpecification

Eigenschap Type Verplicht Beschrijving
Locations Location[] Ja* Lijst van routestops. Geef minimaal 2 locaties op.
RouteOptions RouteOptions Nee Routeringsengine, eenheden, routevoorkeur en optionele kaartinstellingen.

RouteOptions

Eigenschap Type Verplicht Beschrijving
RoutingService int (enum) Nee 0=NetRoad, 1=TrackRoad, 2=Bing.
DistanceUnit int (enum) Nee 0=Mile, 1=Kilometer.
RouteOptimize int (enum) Nee 0=MinimizeTime, 1=MinimizeDistance.
Culture string Nee Bijvoorbeeld en-US.
MapSize MapSize Nee Optioneel uitvoerformaat met Width en Height.
RouteColor RouteColor Nee Optionele routekleur op de kaart.
MapCenter LatLong Nee Optionele coördinaten voor het kaartcentrum.
HideStops bool Nee Als true is, worden stopmarkeringen verborgen in kaartuitvoer wanneer beschikbaar.
ZoomLevel int Nee 0=auto; anders een vast zoomniveau.

Gedeelde typen

Om duplicatie te voorkomen, worden gedeelde modellen zoals Location, LatLong en Address beschreven in de Dispatch API .

Responseschema#

Een succesvolle response retourneert RouteResult met Route met afstand, reistijd, routetrajecten, reisstappen, routepunten en optionele kaartuitvoer.

RouteResult

Eigenschap Type Beschrijving
Route Route Route-uitvoer inclusief afstand, reistijd, trajecten, punten en optionele kaart.
Errors Error[] Optionele fouten of waarschuwingen.
Status int (enum) 0=None, 1=Success, 2=Failed, 3=SuccessWithErrors.

Route

Eigenschap Type Beschrijving
Distance double Totale afstand. De eenheid hangt af van DistanceUnit.
Time int Totale reistijd in seconden.
RouteLegs RouteLeg[] Routetrajecten met reisstappen.
Points LatLong[] Polylijnpunten. Deze collectie kan groot zijn.
Map string Optionele kaartpayload afhankelijk van servergedrag en opties.

Voorbeelden#

Voorbeeld-requestbodies, voorbeeldresponses, headers en taalspecifieke codevoorbeelden moeten hieronder worden ingevoegd.

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
}

Veelvoorkomende fouten#

  • 401 / Unauthorized (REST): Ontbrekende of ongeldige X-API-Key.
  • SOAP-authenticatiefout: Ontbrekende of ongeldige SessionIDHeader, of een verlopen sessie-id.
  • Validatiefouten: Een locatie kan zowel LatLong als Address missen, coördinaten kunnen ongeldig zijn, of er zijn te weinig locaties opgegeven.
  • Niet-routeerbare locaties: Sommige punten zijn mogelijk niet routeerbaar, afhankelijk van de routeringsprovider of de datakwaliteit.

Best practices#

  • Gebruik bij voorkeur LatLong voor alle locaties om geocoderingskosten en ambiguïteit te verminderen.
  • Kies de optimalisatiemodus zorgvuldig: MinimizeTime voor de snelste route, MinimizeDistance voor de kortste route.
  • Polylijnpunten kunnen groot zijn, dus vraag ze alleen op en sla ze alleen op als geometrie nodig is.
  • Gebruik Dispatch voor routeoptimalisatie met meerdere voertuigen of veel stops.

FAQ#

Wat retourneert de Route API?
Route retourneert totale afstand en reistijd, routetrajecten met reisstappen, routepunten en optionele kaartuitvoer afhankelijk van je opties.
Hoe authenticeer ik?
REST gebruikt X-API-Key. SOAP gebruikt SessionIDHeader met een SessionID die is verkregen via de SOAP Login-call.
Heb ik LatLong of Address nodig voor locaties?
LatLong heeft de voorkeur. Als LatLong voor een locatie is weggelaten, is Address verplicht zodat de service de stop kan geocoderen.
Wanneer moet ik Route gebruiken in plaats van Dispatch?
Gebruik Route wanneer je één route met routebeschrijvingen en reisdetails nodig hebt. Gebruik Dispatch wanneer je routeoptimalisatie met meerdere voertuigen of veel stops nodig hebt.

Bouw routes in minuten

Genereer je API-sleutel voor REST, of gebruik SOAP Login om een SessionID te verkrijgen, en begin met routeren met TrackRoad.

API-sleutel ophalen Swagger UI bekijken