Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Construindo requisições para Distance Matrix API

Para realizar a requisição para a API é necessário usar o método POST/problems:

Code Block
languagejson
https://api.maplink.global/matrix/v1/problems

os seguintes headers são necessários

Code Block
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer token'

Onde Token é o access token obtido na autenticação.

Em body são enviados todos os parâmetros para resolver a matriz de distância.

Body e Parâmetros da Request

Alguns parâmetros que são obrigatórios estão denotados com ( * ) e outros são opcionais. A lista dos parâmetros estão descritos separados pelos grupos que eles pertencem.

Parâmetros Obrigatórios

...

  • calculationMode: - Indica o modo de cálculo para a rota. Suporta os tipos:

    • THE_FASTEST: considera - Considera o caminho mais rápido.

    • THE_SHORTEST: considera - Considera o caminho com menor kilometragemquilometragem.

  • destinations: - Descrição dos pontos de destino com:

    • siteId: - Identificador do ponto de parada.

    • latitude: coordenada - Coordenada da latitude em graus decimais.

    • longitude: coordenada - Coordenada da longitude em graus decimais.

  • origins: - Descrição dos pontos de origem com:

    • siteId: - Identificador do ponto de parada.

    • latitude: coordenada - Coordenada da latitude em graus decimais.

    • longitude: coordenada - Coordenada da longitude em graus decimais.

  • tripProfile - Identificador do perfil para realizar a rota. Ver mais em profileName. Somente será considerado os parâmetros do profile caso não estejam explicitamente declarados na request. Exemplo: se a request tiver áreas de restrição, não será considerado o do Trip Profile.

...

  • Recomendável utilizar sempre o “MAPLINK”, pois ele contém os mapas mais atualizados.

Exemplo de requisição com parâmetros obrigatórios

Code Block
languagejson
{
    "calculationMode": "THE_FASTEST",
    "destinations": [
        {
            "latitude": -23.561402303338195, 
            "longitude": -46.63862145421187,
            "siteId": "destination1Liberdade"
        }
    ],
    "origins": [
        {
            "latitude": -23.55363650451996,
            "longitude": -46.620810158377516,
            "siteId": "origin1Mooca"
        }
    ],
    "startDate": 0,
    "tripProfile": "MAPLINKBRMAPLINK"
}

Parâmetros Opcionais

...

  • avoidanceTypes: - Indica que a rota deverá determinados tipos de elementos do sistema viário. Valores permitidos são: [TUNNELS, BRIDGES, FERRIES, TOLL_ROADS, TOLL_GATES].

  • callback: - Contém os dados do callback que é uma URL de webhook para receber os eventos do cálculo do problema. Útil para evitar o consumo de créditos com a API de feedback para checar os eventos, visto que o callback irá enviar o status do processamento. Ver mais em callback (Planning API). Os argumentos possíveis são:

    • url - URL com o endereço que irá receber o callback.

    • user - texto Texto com o nome do usuário caso o endpoint precisar de autenticação.

    • password - texto Texto com a senha caso o endpoint precisar de autenticação.

  • restrictionZones: - Array com o texto do nome da área de restrição previamente cadastradas na Restriction Zone API.

    vehicleSpecification: Especificação do veículo como peso, altura, tipo de carga etc.

  • loadTypes: Texto com o tipo de carga. Usado apenas para descrição, não interfere no cálculo da rota. Valores possíveis: [ GOODS, PERSONS, AGRICULTURAL_PRODUCTS, COAL, BUILDING_PRODUCTS, HEALTH_WASTES, SAND_GRAVELS, RAW_MATERIALS, NATURAL_RESOURCES ].

  • maxHeight: Número decimal com a altura do veículo em metros. Interfere na rota, podendo pegar acesso para evitar passar por viadutos.

  • maxLength: Número decimal com a extensão do veículo em metros.

  • maxWeight: Número decimal com a capacidade de peso do veículo em toneladas.

  • maxWidth: Número decimal com a largura do veículo metros

    .

Exemplo de requisição com parâmetros opcionais

...

Code Block
languagejson
{
    "avoidanceTypes": [
        "TUNNELS",
        "BRIDGES",
        "FERRIES",
        "TOLL_ROADS",
        "TOLL_GATES"
    ],
    "calculationMode": "THE_FASTEST",
    "destinations": [
        {
            "latitude": -23.682211,
            "longitude": -46.546867,
            "siteId": "SantoAndre"
        }
    ],
    "origins": [
        {
            "latitude": -23.337132,
            "longitude": -46.835427,
            "siteId": "Cajamar"
        }
    ],
    "vehicleSpecification": {
        "loadTypes": [
            "COAL"
        ],
        "maxHeight": 5.90,
        "maxLength": 30,
        "maxWidth": 3.60,
        "maxWeight": 150
    },
    "restrictionZones": [],
    "startDate": 1618315200000,
    "tripProfile": "MAPLINKBR"
}

Parâmetros Descontinuados:

  • useRealSpeeds: Habilita informações de trânsito histórico para o cálculo da Trip. As velocidades vão se basear no trânsito do horário configurado em startDate.

Info

Nota: o useRealSpeeds funciona com o perfil descontinuado “BRAZIL”, porém não funciona com o perfil “MAPLINKBR” até a data deste documento (13/04/2021).

Parâmetros Não Funcionam:

  • speedPreferences: Usado para personalizar a velocidade da via para o cálculo da rota e suas estimativas. Os argumentos possíveis são:

    • roadType: tipo de segmento da via. Valores permitidos: [ FERRY, PENALIZED_LOCAL_ROAD, LOCAL_ROAD, PENALIZED_SECONDARY_ROAD, SECONDARY_ROAD, PENALIZED_MAIN_ROAD, MAIN_ROAD, EXPRESSWAY, HIGHWAY ].

    • speed: Número inteiro com a velocidade personalizada da via.

    • speedAtToll: Número inteiro com a velocidade personalizada da via que há pedágio.

Parâmetros Não Testados:

Code Block
languagejson
    "vehicleSpecification": {
        "maxLengthBetweenAxles": 1.8,
        "maxWeightForDangerousMaterials": 14,
        "maxWeightForExplodingMaterials": 10,
        "maxWeightForPollutingMaterials": 5.5,
        "maxWeightPerAxle": 5.2
    MAPLINK"
}