O Roads API retorna o limite de velocidade divulgado para um determinado trecho da via. No caso de trechos de via com limites de velocidade variáveis, o limite de velocidade padrão do trecho é retornado.
A precisão dos dados de limite de velocidade retornados pela Roads API não pode ser garantida. Esses dados não são fornecidos em tempo real e podem ser estimados, imprecisos, incompletos e/ou desatualizados. Consulte os detalhes da cobertura para ver as regiões em que os dados de limite de velocidade estão disponíveis.
Solicitações
Uma solicitação de limites de velocidade deve ser enviada via HTTPS, no seguinte formato:
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY
Uso de parâmetros
Parâmetros obrigatórios
- Um parâmetro
path
ouplaceId
.path
: uma lista de até 100 pares de latitude/longitude que representam um caminho. Os valores de latitude e longitude precisam ser separados por vírgulas. Os pares de latitude/longitude precisam ser separados pelo caractere de pipe: "|". Quando você fornece o parâmetropath
, a API primeiro ajusta o caminho para a estrada mais provável percorrida por um veículo (como faz para a solicitaçãosnapToRoads
) e, em seguida, determina o limite de velocidade para o segmento de via relevante. Se você não quiser que a API ajuste o caminho, transmita um parâmetroplaceId
, conforme explicado abaixo. O exemplo a seguir mostra o parâmetropath
com três pares de latitude/longitude:path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796
.placeId
: os IDs de lugar que representam um ou mais segmentos de estrada. Verifique se cada ID de lugar se refere a um segmento de estrada e não a um tipo diferente de lugar. É possível transmitir até 100 IDs de lugar em cada solicitação. A API não realiza o ajuste de estrada nos IDs de lugar fornecidos. A resposta inclui um limite de velocidade para cada ID de lugar na solicitação. É possível enviar uma solicitaçãosnapToRoads
ounearestRoads
para encontrar os IDs de local relevantes e, em seguida, fornecê-los como entrada para a solicitaçãospeedLimits
. O exemplo a seguir mostra o parâmetroplaceId
com dois IDs de lugar:placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key
: a chave de API do aplicativo. Seu aplicativo precisa se identificar sempre que enviar uma solicitação para a Roads API incluindo uma chave de API em cada solicitação. Saiba como receber uma chave.
Parâmetros opcionais
units
: se os limites de velocidade devem ser retornados em quilômetros ou milhas por hora. Pode ser definido comoKPH
ouMPH
. O padrão éKPH
.
Respostas
Os elementos a seguir podem estar presentes em uma resposta speedLimits
:
speedLimits
: uma matriz de metadados de estrada. Cada elemento consiste nos seguintes campos:placeId
: um identificador exclusivo para um lugar. Todos os IDs de local retornados pelo Roads API corresponderão a segmentos de via.speedLimit
: o limite de velocidade para o trecho da via.units
: retornaKPH
ouMPH
.
snappedPoints
: uma matriz de pontos direcionados. Essa matriz estará presente somente se a solicitação contiver um parâmetropath
. Cada ponto consiste nos seguintes campos:location
: contém um valorlatitude
elongitude
.originalIndex
: um número inteiro que indica o valor correspondente na solicitação original. Cada valor na solicitação precisa ser mapeado para um valor fixado na resposta. Esses valores são indexados a partir de0
. Portanto, um ponto com umoriginalIndex
de4
será o valor aproximado da quinta latitude/longitude transmitida para o parâmetropath
.placeId
: um identificador exclusivo para um lugar. Todos os IDs de local retornados pelo Roads API corresponderão a segmentos de via. OplaceId
pode ser transmitido em uma solicitação de limites de velocidade para determinar o limite de velocidade no segmento de via em questão.
warning_message
: uma string que contém um aviso visível para o usuário.
Exemplo de solicitação usando um caminho
Essa solicitação recebe o limite de velocidade de cada trecho da via mais próximo aos pares de latitude/longitude especificados em um caminho que atravessa a ponte Vasco da Gama em Lisboa, Portugal.
Solicitação
https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY
Resposta
{ speedLimits: [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ], snappedPoints: [ { location: { latitude: 38.75807927603043, longitude: -9.037417546438084 }, originalIndex: 0, placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE" }, { location: { latitude: 38.689653701836896, longitude: -9.177051486847693 }, originalIndex: 1, placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU" }, { location: { latitude: 41.13993011767777, longitude: -8.609400794783655 }, originalIndex: 2, placeId: "ChIJJ4vQRudkJA0RpednU70A-5M" } ], warningMessage: "Input path is too sparse. You should provide a path where consecutive points are closer to each other. Refer to the 'path' parameter in Google Roads API documentation." }
Observe a mensagem de aviso sobre a dispersão de pontos na resposta acima. Se você estiver solicitando limites de velocidade para os trechos de via mais próximos em pontos arbitrários, chame speedLimits
com os IDs de lugar recuperados do endpoint nearestRoads
.
Exemplo de solicitação usando IDs de lugares
Em vez de usar pares de latitude/longitude, você pode transmitir os IDs de lugar dos segmentos de estrada. Recomendamos que você receba IDs de lugar para trechos de via usando solicitações snapToRoads
ou nearestRoads
. Quando você transmite os IDs de lugar, a API
retorna o limite de velocidade do trecho da via representado por cada ID de lugar. A
API não aplica nenhum ajuste de estrada aos IDs de lugar fornecidos.
O exemplo a seguir solicita os limites de velocidade de alguns dos trechos de via que cruzam a ponte Vasco da Gama em Lisboa, Portugal.
Solicitação
https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY
Resposta
{ "speedLimits": [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ] }
Recomendações de uso
Para minimizar o volume de chamadas ao serviço de limite de velocidade, recomendamos fazer uma amostra dos locais dos seus recursos em intervalos de 5 a 15 minutos. O valor exato depende da velocidade em que um recurso está viajando. Se um recurso está fixo, uma única amostra de local é suficiente. Não é necessário fazer várias chamadas.
Para minimizar a latência geral, recomendamos chamar o serviço de limite de velocidade depois de acumular alguns dados, em vez de chamar a API sempre que a localização de um recurso para dispositivo móvel for recebida.
Por que alguns ou todos os limites de velocidade estão ausentes?
A causa mais comum de speedLimits
ausente é solicitar o limite de velocidade
de um lugar que não é um trecho da via.
O exemplo acima usa a ponte Vasco da Gama para ilustrar os conceitos.
A ponte dá acesso à estrada E90 que atravessa o Rio Tejo. A ponte tem um ID de lugar de ChIJUzt97ZEwGQ0RM1JzQfqoDtU. O primeiro segmento de estrada
na resposta acima faz parte da estrada E90 e tem um ID de lugar de
ChIJX12duJAwGQ0Ra0d4Oi4jOGE. Na solicitação de exemplo, se você substituir o ID do lugar da estrada pelo ID do lugar da ponte, na resposta haverá apenas dois limites de velocidade na matriz speedLimits
, porque o ID do lugar da ponte não se refere a um segmento de estrada individual. Além disso, se nenhum dos IDs de lugar for para segmentos de via, a resposta não conterá limites de velocidade.
Ao fazer solicitações de limite de velocidade usando IDs de lugar, verifique se cada ID de lugar se refere a um segmento de via e não a um tipo diferente de lugar. Os IDs de lugar de segmentos de via individuais são melhor recuperados usando solicitações snapToRoads
ou nearestRoads
, que podem retornar vários IDs de lugar em uma única chamada.