Route - Get Route Matrix
Use para obter uma matriz de rotas mostrando o tempo de viagem e a distância para todos os pares possíveis em uma lista de origens e destinos.
Observação
de desativação do serviço V1 da Rota do Azure Mapas
O serviço de rota v1 do Azure Mapas está preterido e será desativado em 31/31/28. Para evitar interrupções de serviço, todas as chamadas para o serviço Route v1 precisarão ser atualizadas para usar o serviço de route v2025-01-01 até 31/31/28 de 31/03. Para obter mais informações, consulte Migrar APIs da Rota 1.0 do Azure Mapas.
A API Get Route Matrix é uma solicitação HTTP GET 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 Obter Instruções de Rota, que fornecem instruções detalhadas de rota, essa API se concentra na eficiência, dando a você 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 rota do Azure Mapas.
Para cada origem determinada, o serviço calcula o custo de roteamento dessa origem para cada destino determinado. O conjunto de origens e o conjunto de destinos podem ser considerados como 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. Por exemplo, digamos que uma empresa de entrega de alimentos tenha 20 motoristas e eles precisam encontrar o motorista mais próximo para pegar a entrega do restaurante. Para resolver esse caso de uso, eles podem chamar a API de Rota de Matriz.
Para cada rota, os tempos de viagem e as distâncias são retornados. Você pode usar os custos computados 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 a solicitação de sincronização, é 100 (o número de origens multiplicado pelo número de destinos).
Enviar solicitação de matriz de rota síncrona
Se o 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 essa API é 100 (o número de origens multiplicado pelo número de destinos). Com essa restrição em mente, exemplos de dimensões de matriz 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 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 de resposta. Essa URL deve ser verificada periodicamente até que os dados de resposta ou informações de erro estejam disponíveis. Se waitForResults parâmetro na solicitação for definido como true, o usuário receberá uma resposta 200 se a solicitação for concluída em menos de 120 segundos.
O tamanho máximo de uma matriz para essa API é 700 (o número de origens multiplicado pelo número de destinos). Com essa restrição em mente, exemplos de dimensões de matriz possíveis são: 50x10, 10x10, 28x25. 10x70 (não precisa ser quadrado).
As respostas assíncronas são armazenadas por 24 horas. A URL de redirecionamento retorna uma resposta 404 se usada 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 Rotas para o Azure Mapas
O servidor responderá com um dos seguintes:
HTTP
202 Accepted– A solicitação de Matriz de Rota foi aceita.HTTP
Error- Houve um erro ao processar sua solicitação de Matriz de Rotas. Pode ser uma solicitação 400 incorreta ou qualquer outro código de status de erro.Se a solicitação de Rota da Matriz foi aceita com êxito, o cabeçalho Local na resposta contém a URL para baixar os resultados da solicitação. Esse URI de status é semelhante ao seguinte:
GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}
- O cliente emite uma solicitação GET na URL de download obtida na Etapa 3 para baixar os resultados
Baixar resultados da sincronização
Quando você faz uma solicitação GET para a API de Sincronização de Matriz de Rota, o serviço retorna 200 códigos de resposta para solicitação bem-sucedida e uma matriz de resposta. O corpo da resposta conterá os dados e não haverá nenhuma possibilidade de recuperar os resultados posteriormente.
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 solicitação assíncrona no cabeçalho de localização da resposta. Esse URI de status é semelhante ao seguinte:
GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}
A URL fornecida pelo cabeçalho de local retornará as seguintes respostas quando uma solicitação de GET for emitida.
HTTP
202 Accepted- A solicitação matrix foi aceita, mas ainda está sendo processada. Tente novamente em algum tempo.
HTTP
200 OK– Solicitação de matriz processada com êxito. O corpo da resposta contém todos os resultados.
GET https://atlas.microsoft.com/route/matrix/{format}?api-version=1.0
Parâmetros de URI
| Nome | Em | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
format
|
path | True |
string |
ID de matriz recebida depois que a solicitação de Rota de Matriz foi aceita com êxito. |
|
api-version
|
query | True |
string |
Número de versão da API do Azure Mapas. |
Cabeçalho da solicitação
| Nome | Obrigatório | Tipo | Description |
|---|---|---|---|
| x-ms-client-id |
string |
Indica a conta destinada ao uso com o modelo de segurança de ID do Microsoft Entra. Essa ID exclusiva para a conta do Azure Mapas pode ser obtida na API da conta do plano de gerenciamento do Azure Mapas. Para obter mais informações sobre como usar a segurança de ID do Microsoft Entra no Azure Mapas, consulte Gerenciar autenticação no Azure Mapas. |
Respostas
| Nome | Tipo | Description |
|---|---|---|
| 200 OK |
Solicitação de matriz processada com êxito. O corpo da resposta contém todos os resultados. |
|
| 202 Accepted |
Com suporte apenas para solicitação assíncrona. Solicitação Aceita: a solicitação foi aceita para processamento. Use a URL no Cabeçalho de Localização para tentar novamente ou acessar os resultados. Cabeçalhos Location: string |
|
| Other Status Codes |
Ocorreu um erro inesperado. |
Segurança
AADToken
Estas são as Fluxos de do Microsoft Entra OAuth 2.0. Quando emparelhado com acesso baseado em função do Azure controle, ele pode ser usado para controlar o acesso às APIs REST do Azure Mapas. Os controles de acesso baseados em função do Azure são usados para designar o acesso a uma ou mais sub-recursos ou conta de recurso do Azure Mapas. 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 Mapas.
Para implementar cenários, recomendamos exibir conceitos de autenticação. Em resumo, essa definição de segurança fornece uma solução para modelar aplicativos por meio de objetos capazes de controlar o acesso em APIs e escopos específicos.
Anotações
- Essa definição de segurança requer o uso do cabeçalho
x-ms-client-idpara indicar a qual recurso do Azure Mapas o aplicativo está solicitando acesso. Isso pode ser adquirido da API de gerenciamento do Mapas.
O Authorization URL é específico para a instância de nuvem pública do Azure. 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 do plano de gerenciamento do Azure por meio do portal do Azure, do PowerShell, da CLI, dos SDKs do Azure ou das APIs REST.
* O uso do SDK da Web do Azure Mapas 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
Flow:
implicit
URL de Autorização:
https://login.microsoftonline.com/common/oauth2/authorize
Escopos
| Nome | Description |
|---|---|
| https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
Essa é uma chave compartilhada provisionada quando você Criar uma conta do Azure Mapas no portal do Azure ou usando o PowerShell, a CLI, os SDKs do Azure ou a API REST.
Com essa chave, qualquer aplicativo pode acessar toda a API REST. Em outras palavras, essa chave pode ser usada como uma chave mestra na conta em que elas são emitidas.
Para aplicativos expostos publicamente, nossa recomendação é usar o aplicativos cliente confidenciais abordagem para acessar AS APIs REST do Azure Mapas para que sua chave possa ser armazenada com segurança.
Tipo:
apiKey
Em:
query
SAS Token
Esse é um token de assinatura de acesso compartilhado criado a partir da operação LISTA SAS no recurso do Azure Mapas por meio do plano de gerenciamento do Azure por meio do portal do Azure, do PowerShell, da CLI, dos SDKs do Azure ou das APIs REST.
Com esse token, qualquer aplicativo está autorizado a acessar com controles de acesso baseados em função do Azure e controle refinado para expiração, taxa e região(s) 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 protegida 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 de mapa de
Tipo:
apiKey
Em:
header
Exemplos
Successfully retrieve the status for a route matrix request
Solicitação de exemplo
GET https://atlas.microsoft.com/route/matrix/11111111-2222-3333-4444-555555555555?api-version=1.0
Resposta de exemplo
{
"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
| Nome | Description |
|---|---|
|
Error |
As informações adicionais do erro de gerenciamento de recursos. |
|
Error |
O detalhe do erro. |
|
Error |
Resposta de erro |
|
Route |
Objeto resumo da seção de rota. |
|
Route |
Objeto de resultado da matriz |
|
Route |
Esse objeto é retornado de uma chamada bem-sucedida da Matriz de Rotas. Por exemplo, se 2 origens e 3 destinos forem fornecidos, 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 resumo |
ErrorAdditionalInfo
As informações adicionais do erro de gerenciamento de recursos.
| Nome | Tipo | Description |
|---|---|---|
| info |
object |
As informações adicionais. |
| type |
string |
O tipo de informação adicional. |
ErrorDetail
O detalhe do erro.
| Nome | Tipo | Description |
|---|---|---|
| additionalInfo |
As informações adicionais do erro. |
|
| 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
| Nome | Tipo | Description |
|---|---|---|
| error |
O objeto de erro. |
RouteLegSummary
Objeto resumo da seção de rota.
| Nome | Tipo | Description |
|---|---|---|
| arrivalTime |
string (date-time) |
A hora de chegada estimada para a rota ou a perna. A hora está em UTC. |
| batteryConsumptionInkWh |
number (double) |
Consumo estimado de energia elétrica em quilowatts-hora (kWh) usando o Modelo de Consumo Elétrico. Incluído se vehicleEngineType estiver definido como elétrico e constantSpeedConsumptionInkWhPerHundredkm for especificado. O valor de batteryConsumptionInkWh inclui a energia elétrica recuperada e, portanto, pode ser negativo (o que indica o 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 não treinada será assumida no cálculo de consumo. |
| departureTime |
string (date-time) |
A hora de partida estimada para a rota ou a perna. A hora está em UTC. |
| fuelConsumptionInLiters |
number (double) |
Consumo estimado de combustível em litros usando o Modelo de Consumo de Combustão. Incluído se vehicleEngineType estiver definido como de combustão e constantSpeedConsumptionInLitersPerHundredkm for especificado. O valor não será negativo. |
| historicTrafficTravelTimeInSeconds |
integer |
Tempo de viagem estimado calculado usando dados de tráfego histórico dependentes do tempo. Incluído somente se computeTravelTimeFor = tudo for usado na consulta. |
| lengthInMeters |
integer |
Propriedade Length In Meters |
| liveTrafficIncidentsTravelTimeInSeconds |
integer |
Tempo de viagem estimado calculado usando dados de velocidade em tempo real. Incluído somente se computeTravelTimeFor = tudo for usado na consulta. |
| noTrafficTravelTimeInSeconds |
integer |
Tempo de viagem estimado calculado como se não houvesse atrasos na rota devido às condições de tráfego (por exemplo, congestionamento). Incluído somente se computeTravelTimeFor = tudo for usado na consulta. |
| trafficDelayInSeconds |
integer |
Atraso estimado em segundos causado pelos incidentes em tempo real, de acordo com informações de tráfego. Para rotas planejadas com hora 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 compute TravelTimeFor=tudo precisa ser adicionado. |
| travelTimeInSeconds |
integer |
Propriedade estimada do tempo de viagem 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 estiver no futuro, o tempo de viagem será calculado usando dados de tráfego histórico dependentes do tempo. |
RouteMatrix
Objeto de resultado da matriz
| Nome | 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
Esse objeto é retornado de uma chamada bem-sucedida da Matriz de Rotas. Por exemplo, se 2 origens e 3 destinos forem fornecidos, haverá 2 matrizes com 3 elementos em cada. O conteúdo de cada elemento depende das opções fornecidas na consulta.
| Nome | Tipo | Description |
|---|---|---|
| formatVersion |
string |
Propriedade Format Version |
| matrix |
Resulta como uma matriz bidimensional de resumos de rotas. |
|
| summary |
Objeto resumo |
RouteMatrixResultResponse
Objeto de resposta da célula atual na matriz de entrada.
| Nome | Tipo | Description |
|---|---|---|
| routeSummary |
Objeto resumo da seção de rota. |
RouteMatrixSummary
Objeto resumo
| Nome | 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. |