Trip

Ejemplo 6 – Obtener instrucciones de ruta detalladas

La Trip API permite, además de las coordenadas completas de la ruta, devolver un rotograma completo de la ruta solicitada. El rotograma consta de una serie de instrucciones textuales que detallan la ruta paso a paso.

Hoy esta función sólo está disponible para Trip Sincrónica.

Para utilizar esta función, simplemente agregue el parámetro turnByTurn a la solicitud, indicando en qué idioma desea recibir las instrucciones.

  • turnByTurn – Objeto donde se especificarán las preferencias relacionadas con el rotograma:
    • language – String que representa el idioma en el que se deben devolver las instrucciones, siguiendo la convención es_ES, es_AR, pt_BR, en, etc.

Ejemplo de solicitud

La siguiente solicitud debe enviarse al endpoint de la Trip Sincrónica, con el método POST:

{
     "points": [
        {
            "siteId": "Point 1-Vila-Galvao",
            "latitude": -23.454521350080835,
            "longitude": -46.57105028629302
        },
        {
            "siteId": "Point 2-Aricanduva",
            "latitude": -23.52933420411184,
            "longitude": -46.55395656824112
        }
    ],
    "turnByTurn":{
        "language":"es_AR"
    }
}

Ejemplo de respuesta

La información sobre el rotograma se devolverá en el array de objetos turnByTurn, donde cada objeto representa una instrucción, como se detalla a continuación:

As informações referentes ao rotograma serão retornadas no array de objetos turnByTurn, onde cada objeto representa uma instrução, conforme detalhada abaixo:

  • turnByTurn – Array de objetos, donde cada objeto representa una instrucción de ruta específica con la siguiente información:
    • text – String con la propia instrucción. El idioma debe coincidir con lo ingresado en el parámetro language;
    • distance – Número entero que representa la distancia total sobre la que se aplica la instrucción;
    • points – String que contiene la subsección de la instrucción en cuestión. Los valores deben ser devueltos de acuerdo el pointsMode informado en la solicitud (polylinegeohasharrayobject);
    • duration – Número entero que representa la duración total en segundos de la sección a la que aplica la instrucción;
    • type – Enum que especifica qué señal debe mostrarse. Los valores posibles son: (Para compatibilidad futura, es importante que la aplicación sea capaz de manejar también señales de instrucciones desconocidas):
      • LEFT_U_TURN” – Regreso a la izquierda;
      • KEEP_LEFT” – Manténgase a la izquierda;
      • LEAVE_ROUNDABOUT” – Salga de la rotonda;
      • TURN_SHARP_LEFT” – Giro cerrado a la izquierda;
      • TURN_LEFT” – Girar a la izquierda;
      • TURN_SLIGHT_LEFT” – Giro ligero a la izquierda;
      • CONTINUE_ON_STREET” – Continuar por la calle;
      • TURN_SLIGHT_RIGHT” – Giro ligero a la derecha;
      • TURN_RIGHT” – Girar a la derecha;
      • TURN_SHARP_RIGHT” – Giro cerrado a la derecha;
      • LAST_POINT” – Instrucción final antes del último punto;
      • VIA_POINT” – Instrucción antes de un waypoint;
      • ROUNDABOUT” – Instrucción antes de entrar a una rotonda;
      • KEEP_RIGHT” – Manténgase a la derecha;
      • RIGHT_U_TURN” – Regreso a la derecha.
    • exitNumber – Entero, devuelto solo cuando type es igual a "ROUNDABOUT". Representa qué salida de la ruta se debe dejar en la rotonda. Por ejemplo: 3 significa salir por la tercera salida.

La respuesta completa a este ejemplo se puede ver a continuación:

{
    "id": "66f165c066cb3034cc5b4f0d",
    "clientId": "maplink",
    "totalDistance": 9161,
    "totalNominalDuration": 532,
    "averageSpeed": 55.80,
    "legs": [
        {
            "distance": 9160,
            "nominalDuration": 532,
            "averageSpeed": 55.8,
            "points": "x}cnCx{f{G`Df@lGd@xFTzl@ZlBDzBCr@G`AQd@MpAk@l@_@l@c@b@e@|@mAZm@xKgVtEoK`BgD|@wAjB_ClAsAxBwBnBkAt@]`Cs@fC]fFk@dBIb\\u@xK]fYcAjHIxFAbUd@jIZnBAfLo@dCO`Ns@vCMhLm@bEOnFHNBjAHtEn@Nl@JChDLz@J`AXrH|AtC|@fG~BtAp@fA\\h@JpBX~AFhA@xAE~AStAWnAc@xAs@l[cRxFuCt@c@vDsCdAeAp@e@nO{I",
            "turnByTurn": [
                {
                    "distance": 5567.24,
                    "type": "CONTINUE_ON_STREET",
                    "points": "x}cnCx{f{G`Df@lGd@xFTzl@ZlBDzBCr@G`AQd@MpAk@l@_@l@c@b@e@|@mAZm@xKgVtEoK`BgD|@wAjB_ClAsAxBwBnBkAt@]`Cs@fC]fFk@dBIb\\u@xK]fYcAjHIxFAbUd@jIZnBAfLo@",
                    "text": "Continúa por Rodovia Fernão Dias",
                    "duration": 247433
                },
                {
                    "distance": 1082.322,
                    "type": "CONTINUE_ON_STREET",
                    "points": "fwlnCvsd{GdCO`Ns@vCMhLm@bEOnFHNBjAHtEn@",
                    "text": "Continúa por Avenida Educador Paulo Freire and drive toward Penha",
                    "duration": 69998
                },
                {
                    "distance": 24.271,
                    "type": "TURN_RIGHT",
                    "points": "vsnnCnqd{GNl@",
                    "text": "Gira a la derecha",
                    "duration": 1471
                },
                {
                    "distance": 2486.666,
                    "type": "TURN_LEFT",
                    "points": "ftnnC|rd{GJChDLz@J`AXrH|AtC|@fG~BtAp@fA\\h@JpBX~AFhA@xAE~AStAWnAc@xAs@l[cRxFuCt@c@vDsCdAeAp@e@nO{I",
                    "text": "Gira a la izquierda toward SP-010, BR-381",
                    "duration": 213110
                },
                {
                    "distance": 0.0,
                    "type": "LAST_POINT",
                    "points": "hqrnCdqc{G",
                    "text": "¡Fin del recorrido!",
                    "duration": 0
                }
            ]
        }
    ],
    "source": "MAPLINK",
    "createdAt": 1727096256344,
    "expiryIn": 1727701056345
}