Antes de começar
É um serviço de API HTTP projetado para calcular todas as combinações possíveis entre o ponto de partida e o destino e permite considerar o congestionamento do tráfego e um meio de transporte específico. Essa API de tempo de viagem está disponível em qualquer lugar do mundo e garante um nível similar de precisão e resposta com os melhores análogos.
Nesta documentação da API Distance Matrix, você pode encontrar uma introdução sobre o uso do produto e material de referência sobre os parâmetros disponíveis.
O que você pode fazer com a API Distance Matrix?
Este produto garante aos desenvolvedores um cálculo do tempo de viagem e da distância entre alguns pontos. Portanto, diferentes tipos de serviços de entrega e correio, como entrega de alimentos, mercadorias e medicamentos, têm benefícios significativos de seu uso. Além disso, você pode usar nossa API no planejamento de rotas, logística e transporte, bem como no desenvolvimento de software, imóveis e serviços residenciais e comerciais.
Em particular, o produto é extremamente útil para aplicações de táxi. Ele permite calcular o tempo de entrega do carro respeitando os engarrafamentos e congestionamentos.
Para escolher a rota mais curta do serviço de entrega de comida em cafés e restaurantes, nossa API de tempo de viagem calcula o tempo de entrega de cada restaurante até o endereço do cliente, considerando o congestionamento rodoviário.
Por que usar a API Distance Matrix?
Você pode usar nosso produto para encontrar o ponto de destino mais próximo do ponto de origem ou para qualquer outra finalidade. A API retornará a duração e a distância na rota mais rápida ou mais curta de cada elemento. Por sua vez, cada elemento é um par origem-destino.
Essa solução funciona em todo o mundo e está disponível para os modos de dirigir, caminhar, andar de bicicleta e transporte público.
Se o tráfego em tempo real não afetar significativamente sua empresa, você poderá economizar tempo e aumentar o desempenho do produto usando sua versão sem monitoramento de tráfego. Para grandes volumes de cálculo, você pode considerar nossa API de matriz de distância assíncrona.
Como usar a API Distance Matrix
Você fornece dados de entrada (endereços ou coordenadas) para os quais deseja fazer uma estimativa. Você receberá uma resposta no formato JSON e a resposta conterá informações sobre a duração de cada seção de rota construída. O tempo de viagem calculado para uma seção de rota sempre leva em conta as condições atuais do tráfego e a previsão do tráfego.
Por exemplo, há três locais iniciais A, B e C e três locais de destino E, B e D. A API Distance retorna a matriz de durações em segundos e distâncias em metros entre os locais. Ele não retorna geometrias de rota.
↓ origens\ destinos ➔
E
B
D
UM
A a E
A a B
A a D
B
B a E
B a B = 0
B a D
C
C a E
C a B
C a D
O tempo e a distância entre os pontos podem não ser simétricos, pois as rotas podem diferir de acordo com a direção devido a ruas de mão única ou restrições de curva. Por exemplo, A a B pode ter uma duração diferente de B a A.
As seções a seguir garantem informações mais detalhadas com base nos exemplos da API Distance Matrix.
Parâmetros de solicitação
A solicitação da API Distance Matrix foi criada especificamente para ser semelhante ao formato de solicitação da API Distance Matrix do Google. Você pode obter mais informações sobre o
Migrar para a API Distancematrix.ai página.
Uma solicitação da API Distance Matrix tem o seguinte formato:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=<origin_location_1|origin_location_2|...|origin_location_n>&destinations=<destination_location_1|destination_location_2|...|destination_location_n>&key=<your_access_token>
Um exemplo de solicitação da API Distance Matrix:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=51.4822656,-0.1933769&destinations=51.4994794,-0.1269979&key=<your_access_token>
Parâmetros necessários
origens — um ponto de partida para calcular a distância e o tempo de viagem. Você pode fornecer um ou mais locais separados pelo caractere vertical (|) na forma de um endereço ou coordenadas de latitude/longitude:
1. Se você passar um endereço, o serviço geocodifica a string e a converte em uma coordenada de latitude/longitude para calcular a distância. Essa coordenada pode ser diferente daquela retornada pela API de Geocodificação, por exemplo, a entrada de um prédio em vez de seu centro.
Mostrar exemplo
Ocultar exemplo
Exemplo de solicitação com endereços:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=Westminster Abbey, 20 Deans Yd, Westminster, London SW1P 3PA, United Kingdom&destinations=St John's Church, North End Rd, Fulham, London SW6 1PB, United Kingdom&key=<your_access_token>
Resposta
CORPO
{
"destination_addresses": [
"St John's Church, North End Rd, London SW6 1PB, United Kingdom"
],
"origin_addresses": [
"Westminster Abbey, 20 Deans Yd, London SW1P 3PA, United Kingdom"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "7.3 km",
"value": 7346
},
"duration": {
"text": "23 mins",
"value": 1401
},
"origin": "Westminster Abbey, 20 Deans Yd, Westminster, London SW1P 3PA, United Kingdom",
"destination": "St John's Church, North End Rd, Fulham, London SW6 1PB, United Kingdom",
"status": "OK"
}
]
}
],
"status": "OK"
}
2. Se você passar as coordenadas de latitude/longitude, elas serão usadas inalteradas para calcular a distância. Certifique-se de que não haja espaço entre os valores de latitude e longitude.
Mostrar exemplo
Ocultar exemplo
Exemplo de solicitação com coordenadas:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=51.4822656,-0.1933769&destinations=51.4994794,-0.1269979&key=<your_access_token>
Resposta
CORPO
{
"destination_addresses": [
"Westminster Abbey, London SW1P 3PA, UK"
],
"origin_addresses": [
"Chapel, London SW6 1BA, UK"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "7.6 km",
"value": 7567
},
"duration": {
"text": "22 mins",
"value": 1359
},
"origin": "51.4822656,-0.1933769",
"destination": "51.4994794,-0.1269979",
"status": "OK"
}
]
}
],
"status": "OK"
}
destinos — um ou mais locais a serem usados como destino final para calcular a distância e o tempo de viagem. As opções para o parâmetro de destino são as mesmas do parâmetro original, conforme descrito acima.
key — a chave de API do seu aplicativo.
Parâmetros opcionais
Mostrar idiomas
Ocultar idiomas
Código do idioma
Idioma
Código do idioma
Idioma
de
afrikaans
sim
japonesa
sq
albanesa
kn
canarês
sou
Amárico
kk
cazaque
sou
árabe
quilômetro
Khmer
por que
armênio
ko
coreana
az
azerbaijano
chave
Quirguiz
eu
Basco
lo
laosiano
ser
Bielorrusso
lv
letão
bn
bengali
lt
lituano
b)
bósnio
mk
Macedônio
por
búlgaro
ms
malaio
meu
birmanês
ml
Malaiala
ca
catalão
sr.
Marathi
zh
chinês
homem
mongol
zh-CN
Chinês (simplificado)
um
Nepalês
Zh-HK
Chinês (Hong Kong)
não
norueguês
Zh-TW
Chinês (tradicional)
pl
polonês
hr
croata
pt
portuguesa
cs
Tcheco
pt-BR
Português (Brasil)
da
dinamarquês
pt-PT
Português (Portugal)
nl
holandês
pa
punjabi
en
Inglês
ou
romeno
pt-BR
Inglês (australiano)
ru
russa
pt-BR
Inglês (Grã-Bretanha)
sr.
sérvio
et
estoniano
é
Cingalês
fa
Farsi
perguntar
eslovaca
se
finlandês
sl
esloveno
arquivo
Filipino
Sim
espanhol
fr
francês
es-419
Espanhol (América Latina)
fr-CA
Francês (Canadá)
sw
suaíli
gl
galego
sv
sueca
ka
georgiano
chá
tâmil
de
alemã
o
Télugo
el
grego
o
tailandês
arma
Gujarati
tentar
turca
é
hebreu
reino unido
ucraniano
oi
hindi
ur
urdu
hu
húngaro
uz
Uzbeque
é
islandês
vi
vietnamita
id
indonésio
zu
zulu
isso
italiano
evitar — introduz restrições à rota. Os valores válidos são especificados na
Restrições seção deste documento. Somente uma restrição pode ser especificada.
unidades — especifica o sistema de unidades a ser usado ao expressar a distância como texto. Veja o
Sistemas de unidades seção deste documento para obter mais informações.
arrival_time — especifica a hora de chegada desejada para solicitações de trânsito, em segundos desde a meia-noite de 1º de janeiro de 1970, UTC. Você pode especificar a hora de partida ou a hora de chegada, mas não ambas. Observe que arrival_time deve ser especificado como um número inteiro.
Mostrar exemplo
Ocultar exemplo
Exemplo de solicitação com arrival_time:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=51.507033,-0.1277161&destinations=52.486243,-1.890401&arrival_time=now&transit_mode=bus&mode=transit&key=<your_access_token>
Resposta
CORPO
{
"destination_addresses": [
"Raw Network, Sherborne B16 8FN, United Kingdom"
],
"origin_addresses": [
"Giaralis Karavasilis Tsavdaridis, 49 The Mall, London N14 6LR, United Kingdom"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "166.4 km",
"value": 166409
},
"duration": {
"text": "4 hour 2 mins",
"value": 14524
},
"origin": "51.507033,-0.1277161",
"destination": "52.486243,-1.890401",
"status": "OK"
}
]
}
],
"status": "OK"
}
departure_time — a hora desejada da partida. Você pode especificar a hora como um número inteiro em segundos desde a meia-noite de 1º de janeiro de 1970, UTC. Como alternativa, você pode especificar um valor de agora, que define a hora de partida para a hora atual (correta para o segundo mais próximo). O departure_time deve ser definido para a hora atual ou em algum momento no futuro. Não pode estar no passado. Os resultados de uma determinada solicitação podem variar com o tempo devido às mudanças na rede rodoviária, às condições médias de tráfego atualizadas e à natureza distribuída do serviço. Os resultados também podem variar entre rotas quase equivalentes a qualquer momento ou frequência. O horário de partida pode ser especificado em dois casos:
Para solicitações em que o modo de viagem é de trânsito: opcionalmente, você pode especificar um dos horários de partida ou chegada. Se nenhuma hora for especificada, o padrão departure_time será agora (ou seja, o horário de partida será padronizado para o horário atual).
Para solicitações em que o modo de viagem está dirigindo: você pode especificar o horário de partida para receber uma rota e a duração da viagem (campo de resposta: duration_in_traffic) que levem em consideração as condições do tráfego. O departure_time deve ser definido para a hora atual ou em algum momento no futuro. Não pode estar no passado.
* Nota: Se o horário de partida não for especificado, a escolha da rota e da duração é baseada na rede rodoviária e nas condições médias de tráfego independentes do tempo. Os resultados de uma determinada solicitação podem variar com o tempo devido a mudanças na rede rodoviária, às condições médias de tráfego atualizadas e à natureza distribuída do serviço. Os resultados também podem variar entre rotas quase equivalentes a qualquer momento ou frequência.
Mostrar exemplo
Ocultar exemplo
Exemplo de solicitação com departure_time:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=51.507033,-0.1277161&destinations=52.486243,-1.890401&departure_time=now&key=<your_access_token>
Resposta
CORPO
{
"destination_addresses": [
"Raw Network, Sherborne B16 8FN, United Kingdom"
],
"origin_addresses": [
"Giaralis Karavasilis Tsavdaridis, 49 The Mall, London N14 6LR, United Kingdom"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "207.3 km",
"value": 207323
},
"duration": {
"text": "2 hour 27 mins",
"value": 8844
},
"duration_in_traffic": {
"text": "2 hour 29 mins",
"value": 8968
},
"origin": "51.507033,-0.1277161",
"destination": "52.486243,-1.890401",
"status": "OK"
}
]
}
],
"status": "OK"
}
traffic_model (o padrão é best_guess) — especifica as suposições a serem usadas ao calcular o tempo no trânsito. Essa configuração afeta o valor retornado no campo duration_in_traffic na resposta, que contém o tempo previsto no tráfego com base nas médias históricas. O parâmetro traffic_model só pode ser especificado para solicitações em que o modo de viagem está acionando e quando a solicitação inclui um departure_time. Os valores disponíveis para esse parâmetro são:
best_guess (padrão) indica que o duration_in_traffic retornado deve ser a melhor estimativa do tempo de viagem, considerando o que se sabe sobre as condições históricas do tráfego e o tráfego ao vivo. O tráfego ao vivo se torna mais importante quanto mais próximo o horário de partida estiver de agora.
O pessimista indica que o duration_in_traffic retornado deve ser maior do que o tempo real de viagem na maioria dos dias, embora dias ocasionais com condições de tráfego particularmente ruins possam exceder esse valor. Afeta o campo na resposta distance_in_traffic_model, retornando a rota mais curta.
otimista indica que a duration_in_traffic retornada deve ser menor do que o tempo real de viagem na maioria dos dias, embora dias ocasionais com condições de tráfego particularmente boas possam ser mais rápidos do que esse valor. Afeta o campo na resposta distance_in_traffic_model, retornando a rota mais curta.
Mostrar exemplo
Ocultar exemplo
Exemplo de solicitação com traffic_model:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=51.507033,-0.1277161&destinations=52.486243,-1.890401&traffic_model=pessimistic&departure_time=now&key=<your_access_token>
Resposta
CORPO
{
"destination_addresses": [
"Raw Network, Sherborne B16 8FN, United Kingdom"
],
"origin_addresses": [
"Giaralis Karavasilis Tsavdaridis, 49 The Mall, London N14 6LR, United Kingdom"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "207.3 km",
"value": 207323
},
"duration": {
"text": "2 hour 27 mins",
"value": 8844
},
"duration_in_traffic": {
"text": "4 hour 0 mins",
"value": 14400
},
"distance_in_traffic_model": {
"text": "118 miles",
"value": 189274
},
"origin": "51.507033,-0.1277161",
"destination": "52.486243,-1.890401",
"status": "OK"
}
]
}
],
"status": "OK"
}
Mostrar exemplo
Ocultar exemplo
Exemplo de solicitação com transit_mode:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=51.507033,-0.1277161&destinations=52.486243,-1.890401&transit_mode=bus|train|tram|subway&mode=transit&departure_time=now&key=<your_access_token>
Resposta
CORPO
{
"destination_addresses": [
"Raw Network, Sherborne B16 8FN, United Kingdom"
],
"origin_addresses": [
"Giaralis Karavasilis Tsavdaridis, 49 The Mall, London N14 6LR, United Kingdom"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "207.3 km",
"value": 207323
},
"duration": {
"text": "2 hour 27 mins",
"value": 8844
},
"duration_in_traffic": {
"text": "2 hour 29 mins",
"value": 8968
},
"origin": "51.507033,-0.1277161",
"destination": "52.486243,-1.890401",
"status": "OK"
}
]
}
],
"status": "OK"
}
Modos de viagem
Para o cálculo das distâncias, você pode especificar o modo de transporte a ser usado. Por padrão, as distâncias são calculadas para o modo de condução. Os seguintes modos de viagem são suportados:
dirigir (padrão) indica o cálculo da distância usando a rede rodoviária.
a caminhada solicita o cálculo da distância para caminhar por caminhos e calçadas para pedestres (quando disponível).
o ciclismo solicita o cálculo da distância para andar de bicicleta por meio de ciclovias e ruas preferidas (quando disponível).
cálculo da distância de solicitações de trânsito por meio de rotas de transporte público (quando disponível). Se você definir o modo de trânsito, precisará especificar um horário de partida ou um horário_chegada. Se nenhuma hora for especificada, o padrão departure_time será agora (ou seja, o horário de partida será padronizado para o horário atual). Você também precisa incluir um transit_mode.
Mostrar exemplo
Ocultar exemplo
Exemplo de solicitação com modos de viagem:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=51.4822656,-0.1933769&destinations=51.4994794,-0.1269979&mode=walking&departure_time=now&key=<your_access_token>
Resposta
CORPO
{
"destination_addresses": [
"Westminster Abbey, London SW1P 3PA, UK"
],
"origin_addresses": [
"Chapel, London SW6 1BA, UK"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "5.7 km",
"value": 5699
},
"duration": {
"text": "1 hour 12 mins",
"value": 4379
},
"origin": "51.4822656,-0.1933769",
"destination": "51.4994794,-0.1269979",
"status": "OK"
}
]
}
],
"status": "OK"
}
Restrições
Podem ser calculadas distâncias de acordo com certas restrições. As restrições são indicadas pelo uso do parâmetro avoid e um argumento para esse parâmetro indicando a restrição a ser evitada. As seguintes restrições são suportadas:
evitar=pedágios
evitar = rodovias
evitar=balsas
evitar = interno
* Nota: a adição de restrições não exclui rotas que incluam o recurso restrito; ela simplesmente direciona o resultado para rotas mais favoráveis.
Mostrar exemplo
Ocultar exemplo
Exemplo de solicitação com restrições:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=51.4822656,-0.1933769&destinations=51.4994794,-0.1269979&mode=driving&departure_time=now&avoid=ferries&key=<your_access_token>
Resposta
CORPO
{
"destination_addresses": [
"Westminster Abbey, London SW1P 3PA, UK"
],
"origin_addresses": [
"Chapel, London SW6 1BA, UK"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "7.6 km",
"value": 7567
},
"duration": {
"text": "22 mins",
"value": 1359
},
"duration_in_traffic": {
"text": "26 mins",
"value": 1568
},
"origin": "51.4822656,-0.1933769",
"destination": "51.4994794,-0.1269979",
"status": "OK"
}
]
}
],
"status": "OK"
}
Sistemas de unidades
Os resultados da Matriz de Distância contêm texto nos campos de distância para indicar a distância da rota calculada. O sistema da unidade a ser usado pode ser especificado:
Mostrar exemplo
Ocultar exemplo
Exemplo de solicitação com sistema de unidades:
OBTENHA:
https://api.distancematrix.ai/maps/api/distancematrix/json?origins=51.4822656,-0.1933769&destinations=51.4994794,-0.1269979&departure_time=now&units=imperial&key=<your_access_token>
Resposta
CORPO
{
"destination_addresses": [
"Westminster Abbey, London SW1P 3PA, UK"
],
"origin_addresses": [
"Chapel, London SW6 1BA, UK"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "4.7 mi",
"value": 7567
},
"duration": {
"text": "22 mins",
"value": 1359
},
"duration_in_traffic": {
"text": "26 mins",
"value": 1568
},
"origin": "51.4822656,-0.1933769",
"destination": "51.4994794,-0.1269979",
"status": "OK"
}
]
}
],
"status": "OK"
}
* Nota: esta configuração do sistema da unidade afeta somente o texto exibido nos campos de distância. Os campos de distância também contêm valores que são sempre expressos em metros.
Exemplo de resposta
A resposta contém uma matriz de objetos de linhas, cada linha contendo uma origem emparelhada com cada destino. Cada elemento do objeto na matriz contém as propriedades de uma única variante de rota. Para obter uma descrição detalhada dos elementos, consulte a seção
Elementos de resposta da matriz de distância.
Resposta
CORPO
{
"destination_addresses": [
"Westminster Abbey, London SW1P 3PA, UK"
],
"origin_addresses": [
"Chapel, London SW6 1BA, UK"
],
"rows": [
{
"elements": [
{
"distance": {
"text": "7.6 km",
"value": 7567
},
"duration": {
"text": "22 mins",
"value": 1359
},
"origin": "51.4822656,-0.1933769",
"destination": "51.4994794,-0.1269979",
"status": "OK"
}
]
}
],
"status": "OK"
}
Elementos de resposta da matriz de distância
As respostas da Matriz de Distância contêm os seguintes elementos raiz:
status contém metadados sobre a solicitação. Veja
Códigos de status abaixo.
origin_addresses contêm uma matriz de endereços conforme retornados pela API de sua solicitação original. Eles são formatados pelo geocodificador e localizados de acordo com o parâmetro de idioma passado com a solicitação.
destination_addresses contêm uma matriz de endereços retornados pela API a partir de sua solicitação inicial. Assim como os endereços de origem, eles são localizados, se apropriado.
as linhas contêm uma matriz de elementos, que por sua vez contêm elementos de status, duração e distância.
Códigos de status
Os campos de status no objeto de resposta contêm o status da solicitação e podem conter informações úteis de depuração. A API Distance Matrix retorna um campo de status de nível superior com informações sobre a solicitação em geral, bem como um campo de status para cada campo de elemento com informações sobre esse emparelhamento específico de origem e destino.
Códigos de status de nível superior
OK indica que a resposta contém um resultado válido.
INVALID_REQUEST indica que a solicitação fornecida era inválida.
MAX_ELEMENTS_EXCEEDED indica que o produto de origem e destino excede o limite por consulta.
OVER_DAILY_LIMIT indica qualquer um dos seguintes:
A chave da API está ausente ou é inválida.
O faturamento não foi ativado em sua conta.
Um limite de uso autoimposto foi excedido.
O método de pagamento fornecido não é mais válido (por exemplo, um cartão de crédito expirou).
OVER_QUERY_LIMIT indica que o serviço recebeu muitas solicitações do seu aplicativo dentro do período permitido.
REQUEST_DENIED indica que o serviço negou o uso do serviço Distance Matrix pelo seu aplicativo.
UNKNOWN_ERROR indica que uma solicitação do Distance Matrix não pôde ser processada devido a um erro no servidor. A solicitação poderá ser bem-sucedida se você tentar novamente.
Códigos de status em nível de elemento
OK indica a resposta e contém um resultado válido.
NOT_FOUND indica que a origem e/ou o destino desse emparelhamento não puderam ser geocodificados.
ZERO_RESULTS indica que nenhuma rota foi encontrada entre a origem e o destino.
MAX_ROUTE_LENGTH_EXCEEDED indica que a rota solicitada é muito longa e não pode ser processada.
UNKNOWN_ERROR indica que uma solicitação do Distance Matrix não pôde ser processada devido a um erro no servidor. A solicitação poderá ser bem-sucedida se você tentar novamente.
Mensagens de erro
Quando o código de status de nível superior não é OK, pode haver um campo error_message adicional no objeto de resposta Distance Matrix. Esse campo contém informações mais detalhadas sobre os motivos por trás do código de status fornecido.
Linhas
Quando a API Distance Matrix retorna resultados, ela os coloca em uma matriz de linhas JSON. Mesmo que nenhum resultado seja retornado (como quando as origens e/ou destinos não existem), ele ainda retorna uma matriz vazia.
As linhas são ordenadas de acordo com os valores no parâmetro de origem da solicitação. Cada linha corresponde a uma origem e cada elemento dentro dessa linha corresponde a um emparelhamento da origem com um valor de destino.
Cada matriz de linhas contém uma ou mais entradas de elementos que, por sua vez, contêm as informações sobre um único emparelhamento origem-destino.
Elementos
As informações sobre cada emparelhamento origem-destino são retornadas em uma entrada de elemento. Um elemento contém os seguintes campos:
status: Consulte
Códigos de status para obter uma lista de possíveis códigos de status.
duração: o tempo necessário para percorrer essa rota, expresso em segundos (o campo de valor) e como texto.
duration_in_traffic: o tempo necessário para percorrer essa rota, com base nas condições atuais e históricas do tráfego.
distância: A distância total dessa rota, expressa em metros (valor) e como texto. O valor textual usa o sistema de unidades especificado com o parâmetro de unidade da solicitação original ou a região de origem.
distance_in_traffic_model: A menor distância necessária para percorrer essa rota, com base nas condições atuais e históricas do tráfego.