Construindo requisições para Trip API
Para realizar a requisição para a API é necessário usar o méotodo POST/problems:
https://api.maplink.global/trip/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 o problema logístico.
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 para o parâmetrouseRealSpeeds
seja true. Caso não use o parâmetrouseRealSpeeds
,startDate
poderá ser qualquer número inteiro.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.
points
: Descrição dos pontos de parada com:siteId
: Identificador do ponto de parada.latitude
: coordenada da latitude em graus decimais.longitude
: coordenada da longitude em graus decimais.
profileName
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:
{ "startDate": 1564509260, "profileName": "MAPLINKBR", "points": [ { "siteId": "Point 1-Extrema", "latitude": -22.859246, "longitude": -46.339289 }, { "siteId": "Point 2-Betim", "latitude": -19.985117, "longitude": -44.202667 } ], "calculationMode": "THE_FASTEST" }
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.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.
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
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:
{ "startDate": 1564509260, "profileName": "MAPLINKBR", "points": [ { "siteId": "Point 1-Extrema", "latitude": -22.859246, "longitude": -46.339289 }, { "siteId": "Point 2-Betim", "latitude": -19.985117, "longitude": -44.202667 } ], "calculationMode": "THE_FASTEST", "useRealSpeeds": false, "vehicleSpecification": { "maxHeight": 5.90, "maxLength": 30, "maxWidth": 3.60, "maxWeight": 150 }, "restrictionZones": [ "MG_BR381_530_km_AltCentl_5_75", "MG_BR381_620_km_AltCentl_5_61" ], "speedPreferences": [ { "roadType": "FERRY", "speed": 20, "speedAtToll": 20 }, { "roadType": "PENALIZED_LOCAL_ROAD", "speed": 20, "speedAtToll": 20 }, { "roadType": "LOCAL_ROAD", "speed": 30, "speedAtToll": 20 }, { "roadType": "PENALIZED_SECONDARY_ROAD", "speed": 30, "speedAtToll": 30 }, { "roadType": "SECONDARY_ROAD", "speed": 30, "speedAtToll": 30 }, { "roadType": "PENALIZED_MAIN_ROAD", "speed": 30, "speedAtToll": 30 }, { "roadType": "MAIN_ROAD", "speed": 30, "speedAtToll": 30 }, { "roadType": "EXPRESSWAY", "speed": 50, "speedAtToll": 50 }, { "roadType": "HIGHWAY", "speed": 50, "speedAtToll": 50 } ] }
Parâmetros Não Testados:
"vehicleSpecification": { "maxLengthBetweenAxles": 1.8, "maxWeightForDangerousMaterials": 14, "maxWeightForExplodingMaterials": 10, "maxWeightForPollutingMaterials": 5.5, "maxWeightPerAxle": 5.2 }