Route - Get Route Matrix
Use para obter uma matriz de rota mostrando o tempo de viagem e a distância para todos os pares possíveis em uma lista de origens e destinos.
A API Get Route Matrix
é uma solicitação de GET
HTTP que calcula o tempo de viagem e a distância para todos os pares possíveis em uma lista de origens e destinos. Ao contrário da API Get Route Directions, que fornece instruções detalhadas de rota, esta API se concentra na eficiência, dando-lhe o custo (tempo de viagem e distância) de roteamento de cada origem para cada destino. Para obter mais informações, consulte Práticas recomendadas para o serviço de Rota do Azure Maps.
Para cada origem, o serviço calcula o custo do encaminhamento dessa origem para cada destino determinado. O conjunto de origens e o conjunto de destinos podem ser considerados como os cabeçalhos de coluna e linha de uma tabela e cada célula na tabela contém os custos de roteamento da origem para o destino dessa célula. Como exemplo, digamos que uma empresa de entrega de comida tenha 20 motoristas e eles precisem encontrar o motorista mais próximo para pegar a entrega no restaurante. Para resolver esse caso de uso, eles podem chamar a API de Rota de Matriz.
Para cada rota, os tempos de viagem e distâncias são devolvidos. Você pode usar os custos calculados para determinar quais rotas detalhadas calcular usando a API de Direções de Rota.
O tamanho máximo de uma matriz para solicitação assíncrona é 700 e para solicitação de sincronização é de 100 (o número de origens multiplicado pelo número de destinos).
Enviar solicitação de matriz de rota síncrona
Se o seu cenário exigir solicitações síncronas e o tamanho máximo da matriz for menor ou igual a 100, convém fazer uma solicitação síncrona. O tamanho máximo de uma matriz para esta API é 100 (o número de origens multiplicado pelo número de destinos). Com essa restrição em mente, exemplos de dimensões matriciais possíveis são: 10x10, 6x8, 9x8 (não precisa ser quadrado).
GET https://atlas.microsoft.com/route/matrix/sync/json?api-version=1.0&subscription-key={subscription-key}
Enviar solicitação de matriz de rota assíncrona
A API assíncrona é apropriada para processar grandes volumes de solicitações de roteamento relativamente complexas. Quando você faz uma solicitação usando uma solicitação assíncrona, por padrão, o serviço retorna um código de resposta 202 ao longo de uma URL de redirecionamento no campo Local do cabeçalho da resposta. Este URL deve ser verificado periodicamente até que os dados de resposta ou informações de erro estejam disponíveis. Se waitForResults
parâmetro na solicitação estiver definido como true, o usuário obterá uma resposta 200 se a solicitação for concluída em menos de 120 segundos.
O tamanho máximo de uma matriz para esta API é 700 (o número de origens multiplicado pelo número de destinos). Com essa restrição em mente, exemplos de dimensões matriciais possíveis são: 50x10, 10x10, 28x25. 10x70 (não precisa ser quadrado).
As respostas assíncronas são armazenadas por 24 horas. O URL de redirecionamento retorna uma resposta 404 se usado após o período de expiração.
GET https://atlas.microsoft.com/route/matrix/json?api-version=1.0&subscription-key={subscription-key}
Aqui está uma sequência típica de operações assíncronas:
O cliente envia uma solicitação GET da Matriz de Rota para o Azure Maps
O servidor responderá com uma das seguintes opções:
HTTP
202 Accepted
- A solicitação de matriz de rota foi aceita.HTTP
Error
- Ocorreu um erro ao processar o seu pedido de Route Matrix. Isso pode ser uma solicitação incorreta 400 ou qualquer outro código de status de erro.Se a solicitação de Rota de Matriz foi aceita com êxito, o cabeçalho Location na resposta contém a URL para baixar os resultados da solicitação. Esse URI de status tem a seguinte aparência:
GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}
- O cliente emite uma solicitação GET no URL de download obtido na Etapa 3 para baixar os resultados
Baixar resultados de sincronização
Quando você faz uma solicitação GET para a API de sincronização da matriz de rota, o serviço retorna 200 código de resposta para solicitação bem-sucedida e uma matriz de resposta. O corpo da resposta conterá os dados e não haverá possibilidade de recuperar os resultados mais tarde.
Baixar resultados assíncronos
Quando uma solicitação emite uma resposta 202 Accepted
, a solicitação está sendo processada usando nosso pipeline assíncrono. Você receberá uma URL para verificar o progresso da sua solicitação assíncrona no cabeçalho do local da resposta. Esse URI de status tem a seguinte aparência:
GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}
O URL fornecido pelo cabeçalho do local retornará as seguintes respostas quando uma solicitação de GET
for emitida.
HTTP
202 Accepted
- A solicitação de matriz foi aceita, mas ainda está sendo processada. Por favor, tente novamente dentro de algum tempo.
HTTP
200 OK
- Pedido de matriz processado com sucesso. O corpo da resposta contém todos os resultados.
GET https://atlas.microsoft.com/route/matrix/{format}?api-version=1.0
Parâmetros do URI
Name | Em | Necessário | Tipo | Description |
---|---|---|---|---|
format
|
path | True |
string |
ID da matriz recebida depois que a solicitação da Rota da matriz foi aceita com êxito. |
api-version
|
query | True |
string |
Número da versão da API do Azure Maps. |
Cabeçalho do Pedido
Name | Necessário | Tipo | Description |
---|---|---|---|
x-ms-client-id |
string |
Especifica qual conta deve ser usada em conjunto com o modelo de segurança do Microsoft Entra ID. Ele representa uma ID exclusiva para a conta do Azure Maps e pode ser recuperado da API de Conta do plano de gerenciamento do Azure Maps. Para usar a segurança do Microsoft Entra ID no Azure Maps, consulte os seguintes artigos para obter orientação. |
Respostas
Name | Tipo | Description |
---|---|---|
200 OK |
Pedido matricial processado com sucesso. O corpo da resposta contém todos os resultados. |
|
202 Accepted |
Suportado apenas para solicitação assíncrona. Pedido aceite: O pedido foi aceite para processamento. Utilize o URL no cabeçalho da localização para repetir ou aceder aos resultados. Cabeçalhos Location: string |
|
Other Status Codes |
Ocorreu um erro inesperado. |
Segurança
AADToken
Estes são os Microsoft Entra OAuth 2.0 Flows. Quando emparelhado com controle de de acesso baseado em função do Azure, ele pode ser usado para controlar o acesso às APIs REST do Azure Maps. Os controles de acesso baseados em função do Azure são usados para designar o acesso a uma ou mais contas de recursos ou subrecursos do Azure Maps. Qualquer usuário, grupo ou entidade de serviço pode receber acesso por meio de uma função interna ou uma função personalizada composta por uma ou mais permissões para APIs REST do Azure Maps.
Para implementar cenários, recomendamos a visualização conceitos de autenticação. Em resumo, essa definição de segurança fornece uma solução para modelar aplicativos(s) por meio de objetos capazes de controle de acesso em APIs e escopos específicos.
Observações
- Essa definição de segurança requer o uso do cabeçalho
x-ms-client-id
para indicar a qual recurso do Azure Maps o aplicativo está solicitando acesso. Isso pode ser adquirido na API de gerenciamento do Maps.
O Authorization URL
é específico para a instância de nuvem pública do Azure. As nuvens soberanas têm URLs de autorização exclusivas e configurações de ID do Microsoft Entra.
* O controle de acesso baseado em função do Azure é configurado a partir do plano de gerenciamento do Azure por meio do portal do Azure, PowerShell, CLI, SDKs do Azure ou APIs REST.
* O uso do SDK da Web do Azure Maps permite a configuração baseada em configuração de um aplicativo para vários casos de uso.
- Para obter mais informações sobre a plataforma de identidade da Microsoft, consulte visão geral da plataforma de identidade da Microsoft.
Tipo:
oauth2
Fluxo:
implicit
URL de Autorização:
https://login.microsoftonline.com/common/oauth2/authorize
Âmbitos
Name | Description |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
Esta é uma chave compartilhada que é provisionada quando você Criar uma conta do Azure Maps no portal do Azure ou usando PowerShell, CLI, SDKs do Azure ou API REST.
Com essa chave, qualquer aplicativo pode acessar todas as APIs REST. Em outras palavras, essa chave pode ser usada como uma chave mestra na conta em que eles são emitidos.
Para aplicativos expostos publicamente, nossa recomendação é usar a abordagem de de aplicativos cliente
Tipo:
apiKey
Em:
query
SAS Token
Este é um token de assinatura de acesso compartilhado criado a partir da operação Listar SAS no de recursos do
Com esse token, qualquer aplicativo é autorizado a acessar com controles de acesso baseados em função do Azure e controle de grão fino para a expiração, taxa e região(ões) de uso para o token específico. Em outras palavras, o Token SAS pode ser usado para permitir que os aplicativos controlem o acesso de forma mais segura do que a chave compartilhada.
Para aplicativos expostos publicamente, nossa recomendação é configurar uma lista específica de origens permitidas no de recursos da conta do
Tipo:
apiKey
Em:
header
Exemplos
Successfully retrieve the status for a route matrix request
Pedido de amostra
GET https://atlas.microsoft.com/route/matrix/11111111-2222-3333-4444-555555555555?api-version=1.0
Resposta da amostra
{
"formatVersion": "0.0.1",
"matrix": [
[
{
"statusCode": 200,
"response": {
"routeSummary": {
"lengthInMeters": 495,
"travelTimeInSeconds": 134,
"trafficDelayInSeconds": 0,
"departureTime": "2018-07-27T22:55:29+00:00",
"arrivalTime": "2018-07-27T22:57:43+00:00"
}
}
},
{
"statusCode": 200,
"response": {
"routeSummary": {
"lengthInMeters": 647651,
"travelTimeInSeconds": 26835,
"trafficDelayInSeconds": 489,
"departureTime": "2018-07-27T22:55:29+00:00",
"arrivalTime": "2018-07-28T06:22:44+00:00"
}
}
}
],
[
{
"statusCode": 200,
"response": {
"routeSummary": {
"lengthInMeters": 338,
"travelTimeInSeconds": 104,
"trafficDelayInSeconds": 0,
"departureTime": "2018-07-27T22:55:29+00:00",
"arrivalTime": "2018-07-27T22:57:13+00:00"
}
}
},
{
"statusCode": 200,
"response": {
"routeSummary": {
"lengthInMeters": 647494,
"travelTimeInSeconds": 26763,
"trafficDelayInSeconds": 469,
"departureTime": "2018-07-27T22:55:29+00:00",
"arrivalTime": "2018-07-28T06:21:32+00:00"
}
}
}
]
],
"summary": {
"successfulRoutes": 4,
"totalRoutes": 4
}
}
Definições
Name | Description |
---|---|
Error |
O erro de gerenciamento de recursos informações adicionais. |
Error |
O detalhe do erro. |
Error |
Resposta de erro |
Route |
Objeto de resumo para a seção de rota. |
Route |
Objeto de resultado da matriz |
Route |
Este objeto é retornado de uma chamada Route Matrix bem-sucedida. Por exemplo, se forem fornecidas 2 origens e 3 destinos, haverá 2 matrizes com 3 elementos em cada. O conteúdo de cada elemento depende das opções fornecidas na consulta. |
Route |
Objeto de resposta da célula atual na matriz de entrada. |
Route |
Objeto de resumo |
ErrorAdditionalInfo
O erro de gerenciamento de recursos informações adicionais.
Name | Tipo | Description |
---|---|---|
info |
object |
As informações adicionais. |
type |
string |
O tipo de informação adicional. |
ErrorDetail
O detalhe do erro.
Name | Tipo | Description |
---|---|---|
additionalInfo |
O erro informações adicionais. |
|
code |
string |
O código de erro. |
details |
Os detalhes do erro. |
|
message |
string |
A mensagem de erro. |
target |
string |
O destino do erro. |
ErrorResponse
Resposta de erro
Name | Tipo | Description |
---|---|---|
error |
O objeto de erro. |
RouteLegSummary
Objeto de resumo para a seção de rota.
Name | Tipo | Description |
---|---|---|
arrivalTime |
string |
A hora prevista de chegada para o percurso ou trecho. A hora está em UTC. |
batteryConsumptionInkWh |
number |
Consumo estimado de energia elétrica em quilowatts-hora (kWh) utilizando o Modelo de Consumo Elétrico. Incluído se vehicleEngineType estiver definido como elétrico e constantSpeedConsumptionInkWhPerHundredkm for especificado. O valor da bateriaConsumoInkWh inclui a energia elétrica recuperada e, portanto, pode ser negativo (o que indica ganho de energia). Se maxChargeInkWh e currentChargeInkWh forem especificados, a recuperação será limitada para garantir que o nível de carga da bateria nunca exceda maxChargeInkWh. Se nem maxChargeInkWh nem currentChargeInkWh forem especificados, a recuperação sem restrições é assumida no cálculo do consumo. |
departureTime |
string |
A hora de partida estimada para a rota ou trecho. A hora está em UTC. |
fuelConsumptionInLiters |
number |
Consumo de combustível estimado em litros utilizando o Modelo de Consumo de Combustão. Incluído se vehicleEngineType estiver definido para de combustão e constantSpeedConsumptionInLitersPerHundredkm for especificado. O valor não será negativo. |
historicTrafficTravelTimeInSeconds |
integer |
Tempo de viagem estimado calculado utilizando dados históricos de tráfego dependentes do tempo. Incluído somente se computeTravelTimeFor = all for usado na consulta. |
lengthInMeters |
integer |
Comprimento em metros propriedade |
liveTrafficIncidentsTravelTimeInSeconds |
integer |
Tempo de viagem estimado calculado usando dados de velocidade em tempo real. Incluído somente se computeTravelTimeFor = all for usado na consulta. |
noTrafficTravelTimeInSeconds |
integer |
Tempo de viagem estimado calculado como se não houvesse atrasos no percurso devido a condições de tráfego (por exemplo, congestionamento). Incluído somente se computeTravelTimeFor = all for usado na consulta. |
trafficDelayInSeconds |
integer |
Atraso estimado em segundos causado pelo(s) incidente(s) em tempo real de acordo com as informações de tráfego. Para rotas planejadas com horário de partida no futuro, os atrasos são sempre 0. Para retornar tempos de viagem adicionais usando diferentes tipos de informações de tráfego, o parâmetro computeTravelTimeFor=all precisa ser adicionado. |
travelTimeInSeconds |
integer |
Propriedade de tempo de viagem estimado em segundos que inclui o atraso devido ao tráfego em tempo real. Observe que mesmo quando traffic=false travelTimeInSeconds ainda inclui o atraso devido ao tráfego. Se DepartAt for no futuro, o tempo de viagem é calculado usando dados históricos de tráfego dependentes do tempo. |
RouteMatrix
Objeto de resultado da matriz
Name | Tipo | Description |
---|---|---|
response |
Objeto de resposta da célula atual na matriz de entrada. |
|
statusCode |
integer |
Propriedade StatusCode para a célula atual na matriz de entrada. |
RouteMatrixResult
Este objeto é retornado de uma chamada Route Matrix bem-sucedida. Por exemplo, se forem fornecidas 2 origens e 3 destinos, haverá 2 matrizes com 3 elementos em cada. O conteúdo de cada elemento depende das opções fornecidas na consulta.
Name | Tipo | Description |
---|---|---|
formatVersion |
string |
Propriedade Format Version |
matrix |
Resultados como uma matriz de 2 dimensões de resumos de rotas. |
|
summary |
Objeto de resumo |
RouteMatrixResultResponse
Objeto de resposta da célula atual na matriz de entrada.
Name | Tipo | Description |
---|---|---|
routeSummary |
Objeto de resumo para a seção de rota. |
RouteMatrixSummary
Objeto de resumo
Name | Tipo | Description |
---|---|---|
successfulRoutes |
integer |
Número de rotas bem-sucedidas na resposta. |
totalRoutes |
integer |
Número total de rotas solicitadas. Número de células na matriz de entrada. |