Construindo requisições para Distance Matrix API
Para realizar a requisição para a API é necessário usar o método POST/problems:
https://api.maplink.global/matrix/v1/problems
os seguintes headers são necessários:
--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:
startDate
: Número inteiro com a data e horário de referência no formato timestamp.calculationMode
: Indica o modo de cálculo para a rota. Suporta os tipos:THE_FASTEST
: considera o caminho mais rápido.THE_SHORTEST
: considera o caminho com menor kilometragem.
destinations
: Descrição dos pontos de destino com:siteId
: Identificador do ponto de parada.latitude
: coordenada da latitude em graus decimais.longitude
: coordenada da longitude em graus decimais.
origins
: Descrição dos pontos de origem com:siteId
: Identificador do ponto de parada.latitude
: coordenada da latitude em graus decimais.longitude
: 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.
Exemplo de Request com parâmetros obrigatórios:
{ "calculationMode": "THE_FASTEST", "destinations": [ { "latitude": -23.561402303338195, "longitude": -46.63862145421187, "siteId": "destination1Liberdade" } ], "origins": [ { "latitude": -23.55363650451996, "longitude": -46.620810158377516, "siteId": "origin1Mooca" } ], "startDate": 0, "tripProfile": "MAPLINKBR" }
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 com o nome do usuário caso o endpoint precisar de autenticação.password
- 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:
{ "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 emstartDate.
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:
"vehicleSpecification": { "maxLengthBetweenAxles": 1.8, "maxWeightForDangerousMaterials": 14, "maxWeightForExplodingMaterials": 10, "maxWeightForPollutingMaterials": 5.5, "maxWeightPerAxle": 5.2 }