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.

A Get Route Matrix API é 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 Trajetos de Rota , que fornece instruções detalhadas de rota, essa API se concentra na eficiência, proporcionando 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 Azure Mapas serviço de rota.

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 precisem 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 calculados para determinar quais rotas detalhadas calcular usando a API de Trajetos 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, talvez você queira 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 possíveis dimensões de matriz 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 a 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 as informações de erro estejam disponíveis. Se waitForResults o 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 possíveis dimensões de matriz são: 50x10, 10x10, 28x25. 10x70 (não precisa ser quadrado).

As respostas assíncronas são armazenadas por 14 dias. 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:

  1. O cliente envia uma solicitação GET da Matriz de Rotas para Azure Mapas

  2. O servidor responderá com um dos seguintes:

    HTTP 202 Accepted – A solicitação de Matriz de Rotas foi aceita.

    HTTP Error – Ocorreu um erro ao processar sua solicitação de Matriz de Rotas. Isso pode ser uma solicitação 400 incorreta ou qualquer outro código de status de erro.

  3. Se a solicitação rota de 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}
  1. O cliente emite uma solicitação GET na URL de download obtida 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 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 202 Accepted resposta, a solicitação está sendo processada usando nosso pipeline assíncrono. Você receberá uma URL para marcar o progresso da solicitação assíncrona no cabeçalho de local 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 GET for emitida.

HTTP 202 Accepted – A solicitação de matriz 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 de Mapas Azure.

Cabeçalho da solicitação

Nome Obrigatório Tipo Description
x-ms-client-id

string

Especifica qual conta destina-se ao uso em conjunto com o modelo de segurança Microsoft Entra ID. Ele representa uma ID exclusiva para a conta Azure Mapas e pode ser recuperado da API de Conta do plano de gerenciamento do Azure Mapas. Para usar Microsoft Entra ID segurança no Azure Mapas consulte os artigos a seguir para obter diretrizes.

Respostas

Nome Tipo Description
200 OK

RouteMatrixResult

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.

Headers

Location: string

Other Status Codes

ErrorResponse

Erro inesperado.

Segurança

AADToken

Esses são os fluxos Microsoft Entra OAuth 2.0. Quando emparelhado com o controle de acesso baseado em função do Azure, ele pode ser usado para controlar o acesso a Azure Mapas APIs REST. Os controles de acesso baseados em função do Azure são usados para designar o acesso a uma ou mais Azure Mapas conta de recurso ou sub-recursos. 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 Azure Mapas APIs REST.

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 acessar o controle em APIs e escopos específicos.

Observações

  • Essa definição de segurança requer o uso do x-ms-client-id cabeçalho para indicar a qual Azure Mapas recurso o aplicativo está solicitando acesso. Isso pode ser adquirido da API de gerenciamento de Mapas.

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 Microsoft Entra ID. * O controle de acesso baseado em função do Azure é configurado no plano de gerenciamento do Azure por meio de portal do Azure, PowerShell, CLI, SDKs do Azure ou 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.

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Nome Description
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

Essa é uma chave compartilhada provisionada quando você Create uma conta 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 master na conta em que elas são emitidas.

Para aplicativos expostos publicamente, nossa recomendação é usar a abordagem de aplicativos cliente confidenciais para acessar Azure Mapas APIs REST para que sua chave possa ser armazenada com segurança.

Type: apiKey
In: query

SAS Token

Esse é um token de assinatura de acesso compartilhado criado com base na operação Listar SAS no recurso Azure Mapas por meio do plano de gerenciamento do Azure por meio de portal do Azure, PowerShell, CLI, SDKs do Azure ou 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 a expiração, a taxa e as regiõ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 maneira mais segura do que a chave compartilhada.

Para aplicativos expostos publicamente, nossa recomendação é configurar uma lista específica de origens permitidas no recurso de conta de mapa para limitar o abuso de renderização e renovar regularmente o Token SAS.

Type: apiKey
In: header

Exemplos

Successfully retrieve the status for a route matrix request

Sample Request

GET https://atlas.microsoft.com/route/matrix/11111111-2222-3333-4444-555555555555?api-version=1.0

Sample Response

{
  "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
ErrorAdditionalInfo

As informações adicionais do erro de gerenciamento de recursos.

ErrorDetail

Os detalhes do erro.

ErrorResponse

Resposta de erro

RouteLegSummary

Objeto summary para a seção de rota.

RouteMatrix

Objeto de resultado de matriz

RouteMatrixResult

Esse objeto é retornado de uma chamada de Matriz de Rota bem-sucedida. Por exemplo, se 2 origens e 3 destinos forem fornecidos, haverá duas matrizes com três elementos em cada. O conteúdo de cada elemento depende das opções fornecidas na consulta.

RouteMatrixResultResponse

Objeto de resposta da célula atual na matriz de entrada.

RouteMatrixSummary

Objeto Summary

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

Os detalhes do erro.

Nome Tipo Description
additionalInfo

ErrorAdditionalInfo[]

As informações adicionais do erro.

code

string

O código de erro.

details

ErrorDetail[]

Os detalhes do erro.

message

string

A mensagem de erro.

target

string

O destino do erro.

ErrorResponse

Resposta de erro

Nome Tipo Description
error

ErrorDetail

O objeto de erro.

RouteLegSummary

Objeto summary para a seção de rota.

Nome Tipo Description
arrivalTime

string

A hora de chegada estimada para a rota ou a perna. A hora está em UTC.

batteryConsumptionInkWh

number

Consumo estimado de energia elétrica em kWh (quilowatts-hora) 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 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 irrestrita será assumida no cálculo de consumo.

departureTime

string

A hora de partida estimada para a rota ou a perna. A hora está em UTC.

fuelConsumptionInLiters

number

Consumo estimado de combustível em litros usando o Modelo de Consumo de Combustão. Incluído se vehicleEngineType estiver definido como combustão e constantSpeedConsumptionInLitersPerHundredkm for especificado. O valor será não negativo.

historicTrafficTravelTimeInSeconds

integer

Tempo estimado de viagem calculado usando dados de tráfego histórico dependentes do tempo. Incluído somente se computeTravelTimeFor = todos forem usados na consulta.

lengthInMeters

integer

Propriedade Length In Meters

liveTrafficIncidentsTravelTimeInSeconds

integer

Tempo estimado de viagem calculado usando dados de velocidade em tempo real. Incluído somente se computeTravelTimeFor = todos forem usados na consulta.

noTrafficTravelTimeInSeconds

integer

Tempo estimado de viagem calculado como se não houvesse atrasos na rota devido a condições de tráfego (por exemplo, congestionamento). Incluído somente se computeTravelTimeFor = todos forem usados na consulta.

trafficDelayInSeconds

integer

Atraso estimado em segundos causado pelos incidentes em tempo real de acordo com as 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=all precisa ser adicionado.

travelTimeInSeconds

integer

Propriedade 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 estiver no futuro, o tempo de viagem será calculado usando dados de tráfego histórico dependentes do tempo.

RouteMatrix

Objeto de resultado de matriz

Nome Tipo Description
response

RouteMatrixResultResponse

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 de Matriz de Rota bem-sucedida. Por exemplo, se 2 origens e 3 destinos forem fornecidos, haverá duas matrizes com três 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

RouteMatrix[]

Resulta como uma matriz bidimensional de resumos de rota.

summary

RouteMatrixSummary

Objeto Summary

RouteMatrixResultResponse

Objeto de resposta da célula atual na matriz de entrada.

Nome Tipo Description
routeSummary

RouteLegSummary

Objeto summary para a seção de rota.

RouteMatrixSummary

Objeto Summary

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.