API Route (Rota única)

Utilize Route para gerar uma rota única com distância e tempo de viagem totais, passos detalhados do itinerário e pontos da rota. Para otimização multi-veículo, utilize Dispatch .

API Route da TrackRoad a gerar uma rota única com distância, tempo de viagem e direções passo a passo
Exemplo de planeamento de rota única mostrando distância, ETA e geometria da rota devolvidos pela API Route.

Precisa do contrato completo?

O Swagger inclui o esquema completo, os modelos e os detalhes dos endpoints para Route e APIs relacionadas.

Ver Swagger UI Visão geral da referência da API

Índice

  1. O que o Route faz
  2. Endpoints e URL base (REST + SOAP)
  3. Autenticação
  4. Esquema do pedido
  5. Esquema da resposta
  6. Exemplos
  7. Erros comuns
  8. Boas práticas
  9. Endpoints relacionados
  10. FAQ

O que o Route faz#

O Route calcula uma rota única através de uma lista de localizações. Devolve a distância total e o tempo de viagem, troços da rota com instruções do itinerário, pontos da rota e saída de mapa opcional, dependendo das opções selecionadas.

LatLong é preferível. Se omitir coordenadas para uma localização, tem de fornecer um Endereço . Modelos partilhados como Location, LatLong e Address estão documentados na API Dispatch .

Endpoints e URL base (REST + SOAP)#

REST

Item Valor
URL base https://trackservice.trackroad.com
Endpoint POST /rest/Route
URL completa https://trackservice.trackroad.com/rest/Route
Content-Type application/json
Autenticação X-API-Key: YOUR_TRACKSERVICEKEY

SOAP

Item Valor
WSDL https://trackservice.trackroad.com/TrackService.asmx?wsdl
Endpoint SOAP https://trackservice.trackroad.com/TrackService.asmx
Operação CalculateRoute
SOAPAction http://TrackService.TrackRoad.com/CalculateRoute
Namespace http://TrackService.TrackRoad.com/
Content-Type text/xml; charset=utf-8
Cabeçalho de autenticação SessionIDHeader com SessionID

Autenticação#

Autenticação REST (X-API-Key)

Inclua a sua TrackServiceKey no cabeçalho X-API-Key em todos os pedidos REST. Gere-a em Autenticação da API .

Autenticação SOAP (SessionIDHeader)

As chamadas SOAP utilizam um SessionIDHeader. Fluxo típico:

  1. Chame Login (SOAP) com o seu nome de utilizador e palavra-passe.
  2. Leia o SessionIDHeader devolvido que contém o SessionID.
  3. Envie esse SessionID no cabeçalho SOAP para pedidos CalculateRoute.

A autenticação REST e SOAP é separada. REST utiliza X-API-Key. SOAP utiliza SessionIDHeader.

Esquema do pedido#

O corpo do pedido REST é RouteSpecification. . O SOAP utiliza a mesma estrutura lógica em XML. Os modelos partilhados estão documentados em API Dispatch .

RouteSpecification

Propriedade Tipo Obrigatório Descrição
Locations Location[] Sim* Lista de paragens da rota. Forneça pelo menos 2 localizações.
RouteOptions RouteOptions Não Motor de roteamento, unidades, preferência de rota e definições opcionais do mapa.

RouteOptions

Propriedade Tipo Obrigatório Descrição
RoutingService int (enum) Não 0=NetRoad, 1=TrackRoad, 2=Bing.
DistanceUnit int (enum) Não 0=Mile, 1=Kilometer.
RouteOptimize int (enum) Não 0=MinimizeTime, 1=MinimizeDistance.
Culture string Não Por exemplo, en-US.
MapSize MapSize Não Tamanho de saída opcional com Width e Height.
RouteColor RouteColor Não Cor opcional da rota no mapa.
MapCenter LatLong Não Coordenadas opcionais do centro do mapa.
HideStops bool Não Se true, os marcadores das paragens ficam ocultos na saída do mapa, quando disponível.
ZoomLevel int Não 0=auto; caso contrário, um nível de zoom fixo.

Tipos partilhados

Para evitar duplicação, modelos partilhados como Location, LatLong e Address são descritos em API Dispatch .

Esquema da resposta#

Uma resposta bem-sucedida devolve RouteResult com Route contendo distância, tempo de viagem, troços da rota, passos do itinerário, pontos da rota e saída de mapa opcional.

RouteResult

Propriedade Tipo Descrição
Route Route Saída da rota incluindo distância, tempo de viagem, troços, pontos e mapa opcional.
Errors Error[] Erros ou avisos opcionais.
Status int (enum) 0=None, 1=Success, 2=Failed, 3=SuccessWithErrors.

Route

Propriedade Tipo Descrição
Distance double Distância total. A unidade depende de DistanceUnit.
Time int Tempo total de viagem em segundos.
RouteLegs RouteLeg[] Troços da rota contendo passos do itinerário.
Points LatLong[] Pontos da polilinha. Esta coleção pode ser grande.
Map string Carga útil do mapa opcional, dependendo do comportamento do servidor e das opções.

Exemplos#

Os exemplos de corpos de pedido, respostas de exemplo, cabeçalhos e amostras de código específicas por linguagem devem ser inseridos abaixo.

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
}

Erros comuns#

  • 401 / Unauthorized (REST): X-API-Key em falta ou inválida.
  • Falha de autenticação SOAP: SessionIDHeader em falta ou inválido, ou um ID de sessão expirado.
  • Erros de validação: Uma localização pode não ter LatLong nem Address, as coordenadas podem ser inválidas ou podem ter sido fornecidas poucas localizações.
  • Localizações não roteáveis: Alguns pontos podem não ser roteáveis dependendo do fornecedor de roteamento ou da qualidade dos dados.

Boas práticas#

  • Prefira LatLong para todas as localizações para reduzir o custo de geocodificação e a ambiguidade.
  • Escolha cuidadosamente o modo de otimização: MinimizeTime para a rota mais rápida, MinimizeDistance para a rota mais curta.
  • Os pontos da polilinha podem ser muitos, por isso solicite-os e armazene-os apenas quando a geometria for necessária.
  • Utilize Dispatch para otimização de rotas com múltiplos veículos ou muitas paragens.

FAQ#

O que devolve a API Route?
O Route devolve a distância total e o tempo de viagem, troços da rota com passos do itinerário, pontos da rota e saída de mapa opcional, dependendo das suas opções.
Como faço a autenticação?
REST utiliza X-API-Key. SOAP utiliza SessionIDHeader com um SessionID obtido pela chamada SOAP Login.
Preciso de LatLong ou Address para as localizações?
LatLong é preferível. Se LatLong for omitido para uma localização, Address é obrigatório para que o serviço possa geocodificar a paragem.
Quando devo usar Route em vez de Dispatch?
Utilize Route quando precisar de uma rota única com direções e detalhes de viagem. Utilize Dispatch quando precisar de otimização de rotas com múltiplos veículos ou muitas paragens.

Crie rotas em minutos

Gere a sua chave de API para REST ou utilize o SOAP Login para obter um SessionID, e comece a calcular rotas com a TrackRoad.

Obter chave de API Ver Swagger UI