El método Roads API devuelve el límite de velocidad publicado para un tramo de ruta determinado. En el caso de los tramos de ruta con límites de velocidad variables, se devuelve el límite de velocidad predeterminado para el tramo.
No se puede garantizar la exactitud de los datos de límites de velocidad que devuelve Roads API. Los datos de límites de velocidad proporcionados no son en tiempo real y pueden ser estimados, inexactos, incompletos o estar desactualizados. Consulta los detalles de cobertura para ver las regiones en las que están disponibles los datos de límites de velocidad.
Solicitudes
Envía solicitudes de límites de velocidad a través de HTTPS con el siguiente formato:
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY
Uso de parámetros
Parámetros obligatorios
- Puede ser un parámetro
path
oplaceId
.path
: Es una lista de hasta 100 pares de latitud y longitud que representan una ruta. Los valores de latitud y longitud deben estar separados por comas. Los pares de latitud y longitud deben separarse con el carácter de barra vertical: "|". Cuando proporcionas el parámetropath
, la API primero ajusta la ruta a la ruta más probable que recorre un vehículo (como lo hace para la solicitudsnapToRoads
) y, luego, determina el límite de velocidad para el tramo de ruta pertinente. Si no quieres que la API ajuste la ruta, debes pasar un parámetroplaceId
como se explica a continuación. En el siguiente ejemplo, se muestra el parámetropath
con tres pares de latitud y longitud:path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796
.placeId
: Es el ID o los IDs de lugar que representan uno o más tramos de ruta. Asegúrate de que cada ID de lugar haga referencia a un tramo de ruta y no a otro tipo de lugar. Puedes pasar hasta 100 IDs de lugar con cada solicitud. La API no ajusta los IDs de lugar proporcionados a las rutas. La respuesta incluye un límite de velocidad para cada ID de lugar de la solicitud. Puedes enviar una solicitudsnapToRoads
onearestRoads
para encontrar los IDs de lugar pertinentes y, luego, proporcionarlos como entrada para la solicitudspeedLimits
. En el siguiente ejemplo, se muestra el parámetroplaceId
con dos IDs de lugar:placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key
: Es la clave de API de tu aplicación. Tu aplicación debe identificarse cada vez que envía una solicitud a Roads API. Para ello, debe incluir una clave de API con cada solicitud. Obtén más información para obtener una clave.
Parámetros opcionales
units
: Indica si se deben devolver los límites de velocidad en kilómetros o millas por hora. Se puede establecer enKPH
oMPH
. La configuración predeterminada esKPH
.
Respuestas
Los siguientes elementos pueden estar presentes en una respuesta speedLimits
:
speedLimits
: Es un array de metadatos de la ruta. Cada elemento consta de los siguientes campos:placeId
: Es un identificador único de un lugar. Todos los IDs de lugar que devuelve Roads API corresponden a tramos de ruta.speedLimit
: Es el límite de velocidad para ese tramo de la ruta.units
: MuestraKPH
oMPH
.
snappedPoints
: Es un array de puntos ajustados. Este array solo está presente si la solicitud contenía un parámetropath
. Cada punto consta de los siguientes campos:location
: Contiene un valor delatitude
ylongitude
.originalIndex
: Es un número entero que indica el valor correspondiente en la solicitud original. Cada valor de la solicitud debe asignarse a un valor ajustado en la respuesta. Estos valores se indexan a partir de0
, por lo que un punto con unoriginalIndex
de4
será el valor ajustado de la 5ª latitud o longitud que se pase al parámetropath
.placeId
: Es un identificador único de un lugar. Todos los IDs de lugar que devuelve Roads API corresponden a tramos de ruta. El objetoplaceId
se puede pasar en una solicitud de límites de velocidad para determinar el límite de velocidad a lo largo de ese tramo de la ruta.
warning_message
: Es una cadena que contiene una advertencia visible para el usuario.
Ejemplo de solicitud con una ruta
Esta solicitud obtiene el límite de velocidad de cada tramo de ruta más cercano a los pares de latitud y longitud especificados en una ruta que cruza el puente Vasco da Gama en Lisboa, Portugal.
Solicitud
https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY
Respuesta
{ 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." }
Observa el mensaje de advertencia sobre la dispersión de puntos en la respuesta anterior. Si solicitas límites de velocidad para los tramos de ruta más cercanos en puntos arbitrarios, debes llamar a speedLimits
con los IDs de lugar recuperados del extremo nearestRoads
.
Ejemplo de solicitud con IDs de lugar
En lugar de usar pares de latitud y longitud, puedes pasar los IDs de lugar de los tramos de ruta. Te recomendamos que obtengas los IDs de lugar para los tramos de ruta con solicitudes de snapToRoads
o nearestRoads
. Cuando pasas IDs de lugar, la API devuelve el límite de velocidad para el tramo de ruta representado por cada ID de lugar. La API no aplica ningún ajuste a la ruta de los IDs de lugar proporcionados.
En el siguiente ejemplo, se solicitan los límites de velocidad de algunos tramos de la ruta que cruzan el puente Vasco da Gama en Lisboa, Portugal.
Solicitud
https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY
Respuesta
{ "speedLimits": [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ] }
Recomendaciones de uso
Para minimizar el volumen de llamadas al servicio Speed Limit, te recomendamos que tomes muestras de las ubicaciones de tus recursos en intervalos de 5 a 15 minutos (el valor exacto depende de la velocidad a la que se desplaza un recurso). Si un activo es fijo, basta con tomar una sola muestra de la ubicación (no es necesario realizar varias llamadas).
Para minimizar la latencia general, recomendamos llamar al servicio Speed Limit una vez que hayas acumulado algunos datos, en lugar de llamar a la API cada vez que se reciba la ubicación de un recurso móvil.
¿Por qué faltan algunos o todos los límites de velocidad?
La causa más común de la falta de speedLimits
es solicitar el límite de velocidad de un lugar que no es un tramo de ruta.
En el ejemplo anterior, se usa el puente Vasco da Gama para ilustrar conceptos. El puente admite la ruta E90 que cruza el río Tajo. El puente en sí tiene un ID de lugar de ChIJUzt97ZEwGQ0RM1JzQfqoDtU. El primer tramo de ruta en la respuesta anterior forma parte de la ruta E90 y tiene un ID de lugar de ChIJX12duJAwGQ0Ra0d4Oi4jOGE. En la solicitud de ejemplo, si reemplazas el ID de lugar de la ruta por el ID de lugar del puente, en la respuesta solo habrá dos límites de velocidad en el array speedLimits
, ya que el ID de lugar del puente no hace referencia a un tramo de ruta individual. Además, si ninguno de los IDs de lugar corresponde a tramos de ruta, la respuesta no contendrá ningún límite de velocidad.
Cuando realices solicitudes de límites de velocidad con IDs de lugar, asegúrate de que cada ID de lugar haga referencia a un tramo de ruta y no a otro tipo de lugar. Los IDs de lugar para segmentos de ruta individuales se recuperan mejor con solicitudes de snapToRoads
o nearestRoads
, cualquiera de las cuales puede devolver varios IDs de lugar en una sola llamada.