A Roads API retorna o limite de velocidade determinado para um determinado trecho da via. No caso de trechos com limites de velocidade variáveis, o limite de velocidade padrão do segmento é retornado.
Não é possível garantir a precisão dos dados de limite de velocidade retornados pela Roads API Os dados de limite de velocidade fornecidos não são em tempo real e podem ser estimados, imprecisos, incompletos ou desatualizados. Consulte os detalhes de cobertura para conferir as regiões em que os dados de limite de velocidade estão disponíveis.
Solicitações
Envie solicitações de limites de velocidade usando HTTPS, no seguinte formato:
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEYUso de parâmetros
Parâmetros obrigatórios
Um parâmetro
pathouplaceId.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 barra vertical: "|". 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 asnapToRoadssolicitação) e, em seguida, determina o limite de velocidade para o trecho 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âmetropathcom 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 trechos da via. Verifique se cada ID de lugar se refere a um trecho da via e não a um tipo diferente de lugar. É possível transmitir até 100 IDs de lugar com cada solicitação. A resposta inclui um limite de velocidade para cada ID de lugar na solicitação.A API não realiza o ajuste de estradas nos IDs de lugar fornecidos. Você pode enviar uma solicitação
snapToRoadsounearestRoadspara encontrar os IDs de lugar relevantes e fornecê-los como entrada para a solicitaçãospeedLimits. O exemplo a seguir mostra oplaceIdparâmetro com dois IDs de lugar:placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y
key: a chave de API do aplicativo. O aplicativo precisa se identificar sempre que enviar uma solicitação à 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 serão retornados em quilômetros ou milhas por hora. Isso pode ser definido comoKPHouMPH. O padrão éKPH.
Respostas
Os seguintes elementos podem estar presentes em uma resposta speedLimits:
speedLimits: uma matriz de metadados de estradas. Cada elemento consiste nos seguintes campos:placeId: um identificador exclusivo de um lugar. Todos os IDs de lugar retornados pela Roads API correspondem a trechos da via.speedLimit: o limite de velocidade para esse trecho da via.units: retornaKPHouMPH.
snappedPoints: uma matriz de pontos ajustados. Essa matriz está presente apenas se a solicitação contiver um parâmetropath. Cada ponto consiste nos seguintes campos:location: contém um valor delatitudeelongitude.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 ajustado na resposta. Esses valores são indexados de0. Portanto, um ponto com umoriginalIndexde4será o valor ajustado da 5ª latitude/longitude transmitida ao parâmetropath.placeId: um identificador exclusivo de um lugar. Todos os IDs de lugar retornados pela Roads API correspondem a trechos da via. OplaceIdpode ser transmitido em uma solicitação de limites de velocidade para determinar o limite de velocidade ao longo desse trecho da via.
warning_message: uma string que contém um aviso visível ao 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 dos 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_KEYResposta
{
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 escassez de pontos na resposta acima. Se você
estiver solicitando limites de velocidade para os trechos da via mais próximos em pontos arbitrários,
chame speedLimits com IDs de lugar recuperados do
nearestRoads endpoint.
Exemplo de solicitação usando IDs de lugar
Em vez de usar pares de latitude/longitude, você pode transmitir os IDs de lugar dos trechos da via. Recomendamos que você receba IDs de lugar para trechos da via usando solicitações snapToRoads ou nearestRoads. Quando você transmite 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 da via que atravessam 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_KEYResposta
{
"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/todos os limites de velocidade estão ausentes?
A causa mais comum de speedLimits ausentes é 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 conceitos. A ponte oferece suporte à estrada E90 que atravessa o Rio Tejo. A ponte em si tem um ID de lugar de ChIJUzt97ZEwGQ0RM1JzQfqoDtU. O primeiro trecho da via na resposta acima faz parte da estrada E90 e tem um ID de lugar de ChIJX12duJAwGQ0Ra0d4Oi4jOGE. No exemplo de solicitação, se você substituir o ID de lugar da estrada pelo ID de lugar da ponte, na resposta haverá apenas dois limites de velocidade na matriz speedLimits, porque o ID de lugar da ponte não se refere a um trecho da via individual. Além disso, se nenhum dos IDs de lugar for para trechos da via, a resposta não vai 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 trecho da via e não a um tipo diferente de lugar. Os IDs de lugar para trechos da via individuais são melhor recuperados usando solicitações snapToRoads ou nearestRoads, que podem retornar vários IDs de lugar de uma única chamada.
E se um trecho da via postar limites de velocidade separados para carros e caminhões?
A Roads API retorna apenas o limite de velocidade máximo determinado para automóveis.