this service is also available as part of the client-side Maps JavaScript API, or for server-side use with the Java Client, Python Client, Go Client and Node.cliente js para serviços do Google Maps.
- introdução
- Antes de iniciar
- Matriz de Distância de pedidos
- HTTPS ou HTTP
- Request parameters
- parâmetros requeridos
- parâmetros Opcionais
- modos de viagem
- de informações de Trânsito
- restrições
- a Unidade de sistemas
- as respostas da matriz de distância
- os elementos de Resposta da matriz de distância
- Status codes
- códigos de Estado de topo
- Códigos do Estado do elemento
- mensagens de erro
- linhas
- elementos
- O sensor de parâmetro
introdução
a matriz de distância API é um serviço que fornece distância de viagem e tempo para uma matriz de origens e destinos. A API devolve informações baseadas na rota recomendada entre os pontos de partida e de chegada, calculada pela API do Google Maps, e consiste em linhas contendo valores duration e distance para cada par.Nota: Este serviço não devolve informações pormenorizadas sobre a rota. A informação do percurso pode ser obtida passando a origem e o destino únicos desejados para as instruções API.
Antes de iniciar
Este documento destina-se a programadores que pretendam calcular a distância de viagem e o tempo entre vários pontos dentro dos mapas fornecidos por uma das APIs do Google Maps. Ele fornece uma introdução ao uso da API e material de referência sobre os parâmetros disponíveis.
Antes de começar a desenvolver com a API da matriz de distância, reveja os requisitos de autenticação (você precisa de uma chave de API) e a informação de utilização e faturação da API (você precisa para ativar a faturação em seu projeto).
Matriz de Distância de pedidos
Uma Matriz de Distância de solicitação de API, assume a seguinte forma:
, onde outputFormat pode ser qualquer um dos valores a seguir:
-
json(recomendado), indica saída em JavaScript Object Notation (JSON); ou -
xml, indica saída como XML.
Nota: Os URLs devem ser devidamente codificados para serem válidos e estão limitados a 8192 caracteres para todos os serviços web. Esteja ciente deste limite ao construir seus URLs. Note que diferentes navegadores, proxies e servidores podem ter diferentes limites de caracteres de URL também.
HTTPS ou HTTP
segurança é importante e HTTPS é recomendado sempre que possível, especialmente para aplicações que incluem dados sensíveis do usuário, como a localização de um usuário, em solicitações. Usar a encriptação HTTPS torna a sua aplicação mais segura e mais resistente a bisbilhotar ou adulterar.
Se HTTPS não for possível, para acessar a API da matriz de distância sobre HTTP, use:
Request parameters
Certain parameters are required while others are optional. Como é padrão em URLs, todos os parâmetros são separados usando o caráter ampersand (&). Todos os caracteres reservados (por exemplo, o sinal mais “+”) devem ser codificados em URL.A lista de parâmetros e seus valores possíveis são enumerados abaixo.
parâmetros requeridos
-
origins— o ponto de partida para o cálculo da distância e do tempo de viagem. Você pode fornecer um ou mais locais separados pelo caractere de pipe (|), na forma de um lugar de IDENTIFICAÇÃO, endereço ou coordenadas de latitude/longitude:- Se você fornecer um lugar de IDENTIFICAÇÃO, você deve prefixar-o com
place_id:. Você só pode especificar um ID de lugar se o pedido incluir uma chave de API ou um ID de cliente de plano Premium da plataforma do Google Maps. Pode obter os IDs dos locais da API de Geocoding e da API dos locais (incluindo a auto-completação do local). Por exemplo, usando IDs de lugar a partir de lugar Auto-completo, veja o lugar Auto-completo e direções. Para mais informações sobre os IDs do local, consulte a visão geral do ID do local. - Se passar por um endereço, o serviço Geocode a cadeia de caracteres e converte-a numa coordenada de latitude/longitude para calcular a distância. Esta coordenada pode ser diferente da devolvida pela API Geocoding, por exemplo uma entrada de edifício em vez de seu centro.
origins=Bobcaygeon+ON|24+Sussex+Drive+Ottawa+ON
Nota: o uso de IDs de lugar é preferido ao uso de endereços ou coordenadas de latitude/longitude. A utilização de coordenadas resultará sempre em que o ponto seja desviado para a estrada mais próxima dessas coordenadas – o que pode não ser um ponto de acesso à propriedade, ou mesmo uma estrada que levará rápida ou seguramente ao destino.se passar as coordenadas de latitude/longitude, elas irão para a estrada mais próxima. É preferível passar uma identificação local. Se passar as coordenadas, certifique-se de que não existe espaço entre os valores de latitude e longitude.origins=41.43206,-81.38992|-33.86748,151.20699
origins=place_id:ChIJ3S-JXmauEmsRUcIaWtf4MzE
- Plus codes must be formatted as a global code or a compound code. O formato mais códigos, como mostrado aqui (sinais de adição url de escape para
%2Be espaços url de escape para%20):- global código de 4 caracteres código de área e 6 ou mais caracteres de código local (849VCWC8+R9 é
849VCWC8%2BR9). - código composto é um código local de 6 caracteres ou mais longo com uma localização explícita (CWC8+R9 Mountain View, CA, EUA é
CWC8%2BR9%20Mountain%20View%20CA%20USA).
- Alternativamente, você pode fornecer um conjunto codificado de coordenadas usando o algoritmo codificado Polyline. Isto é particularmente útil se você tiver um grande número de pontos de origem, porque a URL é significativamente mais Curta ao usar uma linha de código.
- as polilinas codificadas devem ser prefixadas com
enc:e seguidas por um cólon (:).Por exemplo:origins=enc:gfo}EtohhU: - Pode também incluir múltiplas polilinas codificadas, separadas pelo caracter do tubo (
|). Por exemplo:origins=enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:|enc:udymA{~bxM:
- as polilinas codificadas devem ser prefixadas com
destinations— um ou mais locais a utilizar como ponto de chegada para calcular a distância e o tempo de viagem. As opções para o parâmetrodestinationssão as mesmas que para o parâmetroorigins, descrito acima.key— a chave API da sua aplicação. Esta chave identifica o seu pedido para efeitos de gestão de quotas. Aprende a arranjar uma chave. Nota: Os clientes do plano Premium da plataforma do Google Maps podem utilizar uma chave API ou um ID de cliente válido e uma assinatura digital, nos seus pedidos de matriz de distância. Obtenha mais informações sobre os parâmetros de autenticação para os clientes Premium Plan.O exemplo a seguir usa coordenadas de latitude/longitude para especificar o destino de coordenadas:
O exemplo a seguir usa mais códigos para especificar o destino de coordenadas:
O exemplo a seguir mostra o mesmo pedido usando uma polilinha codificada:
parâmetros Opcionais
-
mode(padrãodriving) — Especifica o modo de transporte a utilizar, ao calcular a distância. Os valores válidos e outros detalhes do pedido são especificados na secção modos de viagem do presente documento. -
language— a língua na qual se deve devolver os resultados.- veja a lista de línguas suportadas. O Google frequentemente atualiza as línguas suportadas, de modo que esta lista pode não ser exaustiva.
- Se
languagenão é fornecido, a API tenta usar o idioma de preferência, conforme especificado noAccept-Languagecabeçalho, ou no idioma nativo do domínio a partir do qual o pedido é enviado. - a API faz o seu melhor para fornecer um endereço de rua que é legível tanto para o Usuário e locais. Para alcançar esse objetivo, ele retorna endereços de rua na língua local, transliterado para um script legível pelo Usuário, se necessário, observando o idioma preferido. Todos os outros endereços são devolvidos na língua preferida. Os componentes do endereço são todos devolvidos na mesma língua, que é escolhida a partir do primeiro componente.
- Se um nome não estiver disponível na língua preferida, a API usa a correspondência mais próxima.
- a linguagem preferida tem uma pequena influência sobre o conjunto de resultados que a API escolhe retornar, e a ordem em que eles são devolvidos. O geocoder interpreta abreviaturas de forma diferente dependendo da linguagem, tais como as abreviaturas para tipos de rua, ou sinônimos que podem ser válidos em uma língua, mas não em outra. Por exemplo, utca e tér são sinônimos para street em Húngaro.
-
region— código da região, especificado como um valor de dois caracteres para o ccTLD (domínio de topo do Código do país). A maioria dos códigos ccTLD são idênticos aos códigos ISO 3166-1, com algumas excepções. Este parâmetro influenciará apenas, não restringindo totalmente, os resultados do geocoder. Se existirem resultados mais relevantes fora da região especificada, podem ser incluídos. -
avoid— introduz restrições à rota. Os valores válidos são especificados na secção restrições do presente documento. Apenas uma restrição pode ser especificada. -
units— especifica o sistema de unidades a usar ao expressar a distância como texto. Veja a seção de Sistemas de unidades deste documento para mais informações. -
arrival_time— especifica a hora desejada de chegada para pedidos de trânsito, em segundos desde a meia-noite, 1 de janeiro de 1970 UTC. Você pode especificar tantodeparture_timeouarrival_time, mas não ambos. Note quearrival_timedeve ser especificado como um inteiro. -
departure_time— a hora desejada de partida. Você pode especificar o tempo como um inteiro em segundos desde a meia-noite, 1 de janeiro de 1970 UTC. Se umdeparture_timedepois de 9999-12-31T23:59:59.999999999 Z é especificado, a API retornará odeparture_time9999-12-31T23:59:59.999999999 Z. como Alternativa, você pode especificar um valor denow, que define o horário de partida para o tempo atual (correta para o segundo mais próximo). A hora de partida pode ser especificada em dois casos:- Para Os pedidos em que o modo de viagem é trânsito: Pode indicar opcionalmente um de
departure_timeouarrival_time. Se nenhuma das Horas for especificada, odeparture_timecorresponde agora (isto é, a hora de partida corresponde à hora actual). - Para pedidos em que o modo de viagem é de condução: Você pode especificar o
departure_timepara receber um percurso e a duração da viagem (campo de resposta:duration_in_traffic) que tome as condições de tráfego em conta. Esta opção só está disponível se o pedido contiver uma chave API válida, ou uma assinatura e ID do cliente do Plano Premium da plataforma do Google Maps válida. Odeparture_timedeve ser definido para o tempo atual ou algum tempo no futuro. Não pode ser no passado. Nota: Se a hora de partida não for especificada, a escolha do itinerário e da duração baseia-se na rede rodoviária e nas condições de tráfego independentes em termos de tempo médio. Os resultados de um determinado pedido podem variar ao longo do tempo devido a alterações na rede rodoviária, a condições de tráfego médias actualizadas e à natureza distribuída do serviço. Os resultados também podem variar entre rotas quase equivalentes a qualquer momento ou frequência.Nota: pedidos de matriz de distância especificando
departure_timequandomode=drivingestão limitados a um máximo de 100 elementos por pedido. O número de origens vezes o número de destinos define o número de elementos.
- Para Os pedidos em que o modo de viagem é trânsito: Pode indicar opcionalmente um de
-
traffic_model(valores por omissão parabest_guess) — especifica os pressupostos a utilizar no cálculo do tempo de tráfego. Esta configuração afeta o valor retornado no campoduration_in_trafficna resposta, que contém o tempo previsto no tráfego com base em médias históricas.traffic_modelparâmetro pode ser especificado somente para pedidos em que o modo de viagem édriving, e quando o pedido inclui umdeparture_time, e somente se a solicitação inclui uma chave de API ou um Google Maps Platform Plano Premium ID de cliente. Os valores disponíveis para este parâmetro são::-
best_guess(default) indica que o retornadoduration_in_trafficdeve ser a melhor estimativa do tempo de viagem dado o que é conhecido tanto sobre as condições históricas de tráfego e tráfego ao vivo. O tráfego ao vivo torna-se mais importante quanto mais próximo estiver odeparture_time. -
pessimisticindica que o retornoduration_in_trafficdeve ser maior do que o tempo real de viagem na maioria dos dias, embora dias ocasionais com condições de tráfego particularmente más podem exceder este valor. -
optimisticindica que o retornadoduration_in_trafficdeve ser mais curto do que o tempo de viagem real, na maioria dos dias, apesar de ocasionais dias especialmente com boas condições de tráfego pode ser mais rápido do que este valor.
-
-
transit_mode— especifica um ou mais modos preferidos de trânsito. Este parâmetro só pode ser especificado para pedidos em que omodetransit. O parâmetro suporta os seguintes argumentos:-
busindica que a rota calculada deve preferir viajar de autocarro. -
subwayindica que a rota calculada deve preferir viajar de metro. -
trainindica que o itinerário calculado deve preferir viajar de comboio. -
tramindica que o itinerário calculado deve preferir viajar de eléctrico e de comboio ligeiro. -
railindica que o itinerário calculado deve preferir viajar de comboio, eléctrico, comboio ligeiro e metro. Isto é equivalente a .
-
-
transit_routing_preference— especifica preferências para pedidos de trânsito. Usando este parâmetro, você pode distorcer as opções retornadas, ao invés de aceitar a melhor rota padrão escolhida pela API. Este parâmetro só pode ser especificado para pedidos em que omodetransit. O parâmetro suporta os seguintes argumentos:-
less_walkingindica que a rota calculada deve preferir quantidades limitadas de caminhada. -
fewer_transfersindica que a rota calculada deve preferir um número limitado de transferências.
-
modos de viagem
para o cálculo das distâncias, pode especificar o transporte
modea utilizar. Por padrão, as distâncias são calculadas para o modo de condução. São suportados os seguintes modos de viagem:-
driving(por omissão) indica o cálculo da distância através da rede rodoviária. -
walkingsolicita o cálculo da distância para percorrer caminhos pedonais& calçadas (quando disponível). -
bicyclingsolicita o cálculo da distância para Bicicletas através de ciclovias& ruas preferidas (quando disponível). -
transitsolicita o cálculo da distância através de rotas de trânsito público (quando disponível). Este valor só pode ser especificado se o pedido incluir uma chave API ou um ID do cliente do Plano Premium da plataforma do Google Maps. Se definir o modo paratransitpode indicar opcionalmente umdeparture_timeou umarrival_time. Se nenhuma das Horas for especificada, odeparture_timecorresponde agora (isto é, a hora de partida corresponde à hora actual). Você também pode opcionalmente incluir umtransit_modee/ou umtransit_routing_preference.
de informações de Trânsito
o Tráfego de informações é usado quando todas as seguintes aplicam-se (estas são as condições necessárias para receber o
duration_in_trafficcampo na Matriz de Distância resposta):- A viagem
modeparâmetrodrivingou não é especificado (drivingé o padrão de modo de viagem). - o pedido inclui um parâmetro válido
departure_time. Odeparture_timepode ser definido para o tempo atual ou algum tempo no futuro. Não pode ser no passado.
Opcionalmente, você pode incluir o parâmetro
traffic_modelno seu pedido para especificar os pressupostos a usar ao calcular o tempo no tráfego.a seguinte URL inicia um pedido de matriz de distância para a condução de distâncias entre Boston, MA ou Charlestown, MA, e Lexington, MA e Concord, MA. O pedido inclui uma hora de partida, cumprindo todos os requisitos para retornar o campo
duration_in_trafficna Resposta da matriz de distância.restrições
distâncias podem ser calculadas que aderem a 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 evitar. As restrições a seguir são suportados:avoid=tollsavoid=highwaysavoid=ferriesavoid=indoor
* Nota: a adição de restrições não impede rotas que incluem a funcionalidade restrita; ele os preconceitos de que o resultado mais favorável rotas.
a Unidade de sistemas
da Matriz de Distância de resultados conter
textdentro dedistancecampos para indicar a distância da rota calculada. O sistema unitário a usar pode ser especificado:-
units=metric(por omissão) devolve distâncias em quilómetros e metros. -
units=imperialdevolve distâncias em milhas e pés.
* Nota: Esta configuração do sistema de unidades afecta apenas os campos
textexibidos dentro dedistance. Os camposdistancetambém contêm que são sempre expressos em metros.as respostas da matriz de distância
as respostas às perguntas de API da matriz de distância são devolvidas no formato indicado pelo
outputflag dentro do Caminho do pedido de URL.
duas amostras de pedidos HTTP são mostrados abaixo, solicitando distância e duração de Vancouver, BC, Canadá e de Seattle, WA, EUA, para San Francisco, CA, EUA e Victoria, BC, Canadá.
Este pedido demonstra usar o JSON
outputflag:Este pedido demonstra a utilização de XML
outputcódigo:Este pedido retornará quatro elementos – duas origens vezes dois destinos:
Vancouver para San Francisco Vancouver a Victoria Seattle para San Francisco Seattle para Victoria os Resultados são retornados em linhas, cada linha contém uma origem emparelhado com cada destino.
pode testar isto ao introduzir o URL no seu navegador web (certifique-se que substitui
YOUR_API_KEYcom a sua chave de API actual).seleccione as páginas abaixo para ver a amostra de respostas JSON e XML.
o restante desta documentação irá usar a sintaxe JSON.
os elementos de Resposta da matriz de distância
as respostas da matriz de distância contêm os seguintes elementos de raiz:
-
statuscontém metadados a pedido. Ver Códigos de Estado abaixo. -
origin_addressescontém uma lista de endereços como retornado pela API a partir do seu pedido original. Estes são formatados pelo geocoder e localizados de acordo com o parâmetrolanguagepassado com o pedido. -
destination_addressescontém uma lista de endereços como retornado pela API a partir do seu pedido original. Tal como acontece comorigin_addresses, estes são localizados, se apropriado. -
rowscontém uma matriz deelements, que por sua vez contêm, cada umastatusdurationedistanceelemento.
Status codes
The
statusfields within the response object contain the status of the request, and may contain useful debugging information. A API da matriz de distância retorna um campo de status de nível superior, Com informações sobre o pedido em geral, bem como um campo de status para cada campo de elemento, com informações sobre esse par de origem-destino particular.códigos de Estado de topo
-
OKindica que a resposta contém umresult. -
INVALID_REQUESTindica que o pedido fornecido era inválido. -
MAX_ELEMENTS_EXCEEDEDindica que o produto de origens e destinos excede o limite por consulta. -
MAX_DIMENSIONS_EXCEEDEDindica que o número de origens ou destinos excede o limite por consulta. -
OVER_DAILY_LIMITindica qualquer um dos seguintes:- A chave da API está em falta ou é inválida.
- a facturação não foi activada na sua conta.foi excedida uma tampa de Utilização auto-imposta.
- o método de pagamento fornecido já não é válido (por exemplo, um cartão de crédito expirou).
veja a FAQ do mapa para aprender a corrigir isto.
- indica que o serviço recebeu demasiados pedidos da sua aplicação dentro do período de tempo permitido.
-
REQUEST_DENIEDindica que o serviço negou o uso do serviço de matriz de distância pela sua aplicação. -
UNKNOWN_ERRORindica que uma solicitação de matriz de distância não pode ser processada devido a um erro do servidor. O pedido pode ser bem sucedido se você tentar novamente.
Códigos do Estado do elemento
-
OKindica que a resposta contém umresult. -
NOT_FOUNDindica que a origem e / ou o destino deste emparelhamento não puderam ser geocodados. -
ZERO_RESULTSindica que não foi encontrada nenhuma rota entre a origem e o destino. -
MAX_ROUTE_LENGTH_EXCEEDEDindica que a rota solicitada é demasiado longa e não pode ser processada.
mensagens de erro
quando o código de Estado de Topo não é
OK, pode haver um campo adicionalerror_messagedentro do objecto de resposta à matriz de distância. Este campo contém informações mais detalhadas sobre as razões por trás do código de Estado indicado.Nota: não é garantido que este campo esteja sempre presente, e o seu conteúdo está sujeito a alterações.
linhas
quando a API da matriz de distância devolve os resultados, coloca-os dentro de um JSON
rowsarray. Mesmo que não sejam retornados resultados (como quando as origens e/ou destinos não existem), ele ainda retorna uma matriz vazia. As respostas XML consistem em zero ou mais elementos<row>.As linhas são ordenadas de acordo com os valores no parâmetro
origindo pedido. Cada linha corresponde a uma origem, e cadaelementdentro dessa linha corresponde a um emparelhamento de origem com umadestinationvalor., Cada
rowarray contém um ou maiselemententradas, que por sua vez contêm as informações sobre uma única origem-destino de emparelhamento.elementos
a informação sobre cada par de origem-destino é devolvida numa entrada
elementAnelementcontains the following fields:-
status: See Status Codes for a list of possible status codes. -
duration: O comprimento de tempo que leva para viajar nesta rota, expresso em segundos (valuecampo) etext. A representação textual é localizada de acordo com o parâmetrolanguage. -
duration_in_traffic: o período de tempo que leva a percorrer esta rota, com base nas condições de tráfego actuais e históricas. Veja o parâmetrotraffic_modelpedido para as opções que você pode usar para solicitar que o valor devolvido seja otimista, pessimista ou uma estimativa de melhor palpite. A duração é expressa em segundos (o campovalue) e comotext. A representação textual é localizada de acordo com o parâmetrolanguage. A duração do tráfego só é devolvida se todas as seguintes informações forem verdadeiras:- o pedido inclui um parâmetro
departure_time. - o pedido inclui uma chave de API válida,ou uma identificação e assinatura válidas do cliente do Plano Premium da plataforma do Google Maps.as condições de tráfego estão disponíveis para a rota solicitada.
- o parâmetro
modeé definido comodriving.
- o pedido inclui um parâmetro
-
distance: A distância total do percurso, expresso em metros (value) etext. O valor textual utiliza o sistema Unitário Especificado com ounitparâmetro do pedido original, ou a região da origem. -
fare: se presente, contém a tarifa total (ou seja, o custo total do bilhete) nesta rota. Esta propriedade só é devolvida para pedidos de trânsito e apenas para fornecedores de trânsito onde as informações sobre tarifas estão disponíveis. A informação inclui:-
currency: um código de moeda ISO 4217 que indica a moeda em que o montante é expresso. -
value: O montante total da tarifa, na moeda acima especificada. -
text: O montante total da tarifa, formatado na língua solicitada.
-
Abaixo está um exemplo de uma
elementque contém informações sobre tarifas:O sensor de parâmetro
A API do Google Maps anteriormente exigido que você inclua o
sensorparâmetro para indicar se o aplicativo usado asensor para determinar a localização do usuário. Este parâmetro já não é necessário. - Plus codes must be formatted as a global code or a compound code. O formato mais códigos, como mostrado aqui (sinais de adição url de escape para
- Se você fornecer um lugar de IDENTIFICAÇÃO, você deve prefixar-o com