El caso de uso7 está dedicado a la publicación de zonas en las que se recomienda una velocidad inferior a la máxima de la vía.
La DGT, con el servicio de balizamiento perimetral de eventos deportivos, recopila y publica la información de la localización en tiempo real de todos los eventos deportivos (competiciones ciclistas, eventos de atletismo en carretera, rallies, etc) que afectan a la circulación y seguridad vial de los usuarios que transitan por las vías del territorio español. La creación, publicación y eliminación de los planes y los recorridos de dichos eventos se realizará a través de los sistemas de la DGT.
Se utilizarán balizas V-2 para realizar el seguimiento de los eventos y conos conectados que informarán de los distintos cortes de las carreteras en las inmediaciones del circuito para garantizar la seguridad. De esta forma el usuario planifica mejor sus desplazamientos, y considerar la opción del uso del transporte público que permite reducción de las emisiones contaminantes.
La información de balizamiento de los eventos deportivos que llega al usuario final dependerá de la implementación realizada por el agente/tercero que consume la información de la plataforma DGT 3.0 y la publica a través del sistema de información del vehículo, aplicación móvil u otros dispositivos.
La plataforma cuenta con dos funcionalidades diferenciadas para la publicación (envío) y para la suscripción (recepción) de información. La primera es a través de una API REST del caso de uso y la segunda a través de un servicio MQTT en tiempo real. Además la información de cortes de vía se publicará por bandeja de salida.
Tanto la funcionalidad de publicación como de suscripción requieren de certificados de acceso distintos que deben ser solicitados y suministrados por DGT 3.0. Estos certificados, de no haber sido solicitados ya, se deberán solicitar a soporte@cmobility30.es.
A continuación se muestran las URLs con las que se accede a cada funcionalidad:
Modo | URL | Descripción |
---|---|---|
Suscripción | https://pre.cmobility30.es/use-case-7 | Endpoint del entorno de integración para la suscripción |
Suscripción
Este caso de uso tiene un comportamiento similar al que ofrece la interfa de bandeja de salida que puede encontrarse en el caso de uso 4. Panel de mensajes virtual. La API ofrece un endpoint a traves del cual se publica la información de velocidades recomendadas en las distintas carreteras y autovías. Dicho endpoint se muestra a continuación y se debe acceder a el realizando una petición de tipo GET. Así mismo, los detalles generales para realizar una petición se pueden encontrar en General · (cmobility30.es)
{baseUrl}/v1/events
En el endpoint se publican las velocidades recomendadas en formato JSON. Aquí se puede ver un ejemplo:
[
{
"properties": {
"lat": 43.358929976820946,
"lng": -4.044689973816276,
"timeStamp": "2022-08-29T13:02:21.037+02:00",
"vialidad": {
"roadDescription": "A-67/Palencia",
"direction": 1,
"affectedLength": 2524.0,
"roadMaxSpeed": 90.0
}
},
"recommendedSpeeds": [
{
"speed": 40,
"kmStart": 0.0,
"kmEnd": 12.399856336374242
},
{
"speed": 50,
"kmStart": 12.399856336374242,
"kmEnd": 27.279683940023332
},
{
"speed": 60,
"kmStart": 27.279683940023332,
"kmEnd": 44.63948281094727
},
{
"speed": 70,
"kmStart": 44.63948281094727,
"kmEnd": 64.47925294914606
},
{
"speed": 80,
"kmStart": 64.47925294914606,
"kmEnd": 86.7989943546197
},
{
"speed": 90,
"kmStart": 86.7989943546197
}
]
},
{
"properties": {
"lat": 43.35894003510475,
"lng": -4.045290034264326,
"timeStamp": "2022-08-29T13:02:21.038+02:00",
"vialidad": {
"roadDescription": "N-611/N-634",
"direction": 0,
"affectedLength": 3083.0,
"roadMaxSpeed": 90.0
}
},
"recommendedSpeeds": [
{
"speed": 60,
"kmStart": 0.0,
"kmEnd": 67.68004816990603
},
{
"speed": 70,
"kmStart": 67.68004816990603,
"kmEnd": 145.02867464979863
},
{
"speed": 80,
"kmStart": 145.02867464979863,
"kmEnd": 232.0458794396778
},
{
"speed": 90,
"kmStart": 232.0458794396778
}
]
}
]
A continuación se presenta una descripción de cada uno de los campos del JSON anterior. Dicho JSON, publica la información de una congestión concreta así como las velocidades recomendadas en diferentes puntos:
En el documento se publica una lista de carreteras afectadas en las que existe un atasco, cada una de ellas esta formada por un campo properties y recommendedSpeeds. Es decir, cada conjunto de estos dos campos referencia a una carretera diferente con recomendaciones de velocidad diferentes.
-
Properties: Contiene información relativa a la zona afectada.
- Lat: Latitud donde comienza el atasco.
- Lon: Longitud donde comienza el atasco.
- Timestamp(Fecha UTC): Fecha y hora en formato UTC del momento en el que el evento se ha generado.
-
Vialidad.
- RoadDescription: Nombre de la carretera o carreteras que se ven afectadas.
- Direction: La dirección de la carretera sobre la que se aplica el algoritmo. Puede tener valores 1 (Ascendente) o 0 (Descendente).
- AffectedLength: Longitud, en metros, del tramo en el que actualmente hay una retención. Cuanto mayor sea esta distancia mayor será la distancia entre velocidades recomendadas.
- RoadMaxSpeed: Velocidad máxima de la vía, en Km/h.
-
RecommendedSpeeds: Contiene las velocidades recomendadas en los distintos tramos.
- Speed: Velocidad recomendada.
- kmStart: Punto de inicio de la zona de recomendación. Representa la distancia desde el punto de origen en la que comienza la zona de velocidad recomendada.
- kmEnd: Punto de finalización de la zona de recomendación. Representa la distancia desde el punto de origen en la que finaliza la zona de velocidad recomendada.
Errores
Todas las respuestas HTTP que no sean 200 – OK, se pueden considerar inválidas. Independientemente del mensaje de error, el formato de la respuesta es como el siguiente ejemplo:
{
"status": 401,
"code": 1,
"message": "User not found or valid"
}
La información relativa a los errores en este caso de uso se puede encontrar aquí. Estos errores tendrán tres categorías principales:
Error de Autentificación
-
HTTP Status: 401 - Unauthorized
Code Message 1 User not found or valid
Error de Cliente
-
HTTP Status: 400 - Bad Request
Code Message 0 Authenticate 2 Entity ID not found 3 Missing required property 4 Incorrect token received 5 Expired token received 6 There is an error with the token provided. Please request a new one 7 No token received 8 Missing request header 9 Permission denied. Role assigned to user missing 10 There is an error in one or more elements
A continuación se muestra una respuesta de error 5 - Expired token received la cual tendrá el siguiente formato:
{
"status": 400,
"code": 5,
"message": "Expired token received"
}
Error de Servidor
-
HTTP Status: 500 - Internal Server Error
Code Message 28 Internal error