Revisa la respuesta de la ruta

Cuando la API de Routes calcula una ruta, toma los puntos de referencia y los parámetros de configuración que proporcionas como entrada. Luego, la API muestra una respuesta que contiene la ruta default y una o más rutas alternativas.

La respuesta puede incluir diferentes tipos de rutas y otros datos, según los campos que solicites:

Para incluir esto en la respuesta Consulta esta documentación
La ruta con mayor ahorro de combustible o energía según el tipo de motor del vehículo. Configura rutas ecológicas
Hasta tres rutas alternativas Cómo solicitar rutas alternativas
Es la polilínea de una ruta completa, para cada segmento de la ruta y para cada paso de un segmento. Cómo solicitar polilíneas de ruta
Los peajes estimados, teniendo en cuenta los descuentos o los pases en los precios de los peajes disponibles para el conductor o el vehículo. Calcular las tarifas de los peajes
Respuestas localizadas por códigos de idioma y unidad de medición (imperial o métrico). Cómo solicitar valores localizados
Para dar formato a las instrucciones de navegación como una string de texto HTML, agrega HTML_FORMATTED_NAVIGATION_INSTRUCTIONS a extraComputations. Cálculos adicionales

Para obtener una lista completa de las opciones de entrada, consulta Opciones de ruta disponibles y el Cuerpo de la solicitud.

Con la respuesta, puedes proporcionar a tus clientes la información necesaria a fin de seleccionar la ruta adecuada para sus requisitos.

Información acerca de las máscaras de campo

Cuando llamas a un método para calcular una ruta, debes especificar una máscara de campo que defina qué campos deseas que se muestren en la respuesta. No hay una lista predeterminada de los campos que se muestran. Si omites esta lista, los métodos mostrarán un error.

En los ejemplos de este documento, se muestra el objeto de respuesta completo sin tener en cuenta las máscaras de campo. En un entorno de producción, tu respuesta solo incluiría los campos que especifiques de forma explícita en la máscara de campo.

Para obtener más información, consulta Cómo elegir la información que se mostrará.

Información sobre cómo mostrar los derechos de autor

Cuando muestres los resultados a los usuarios, debes incluir la siguiente declaración de derechos de autor:

Powered by Google, ©YEAR Google

Por ejemplo:

Powered by Google, ©2023 Google

Acerca de las rutas, los tramos y los pasos

Antes de ver la respuesta que muestra la API de Routes, debes comprender los componentes que conforman una ruta:

La ruta, el tramo y el paso.

Tu respuesta puede contener información sobre cada uno de estos componentes de la ruta:

  • Ruta: El viaje completo desde el punto de referencia de origen, a través de cualquier punto de referencia intermedio, hasta el punto de referencia de destino. Una ruta consta de uno o más segmentos.

  • Etapa: Es la ruta desde un punto de referencia en una ruta hasta el siguiente punto de referencia en la ruta. Cada etapa consta de uno o más pasos discretos.

    Una ruta contiene un segmento separado para el trayecto desde cada punto de referencia hasta el siguiente. Por ejemplo, si la ruta contiene un solo punto de referencia de origen y un solo punto de referencia de destino, entonces contiene un solo segmento. Por cada punto de referencia adicional que agregues a la ruta después del origen y el destino, denominado punto de referencia intermedio, la API agregará un segmento separado.

    La API no agrega una etapa para un punto de referencia intermedio de paso. Por ejemplo, una ruta que contiene un punto de referencia de origen, un punto de referencia intermedio de paso y un punto de referencia de destino contiene solo un segmento desde el origen hasta el destino, mientras pasa por el punto de referencia. Para obtener más información sobre los puntos de referencia de paso, consulta Cómo definir un punto de referencia de paso.

  • Paso: Una sola instrucción a lo largo del segmento de una ruta. Un paso es la unidad más atómica de una ruta. Por ejemplo, un paso puede indicar "Gira a la izquierda en la calle principal".

¿Qué hay en la respuesta?

El objeto JSON que representa la respuesta de la API contiene las siguientes propiedades de nivel superior:

  • routes, un array de elementos del tipo Route. El array routes contiene un elemento por cada ruta que muestra la API. El array puede contener un máximo de cinco elementos: la ruta predeterminada, la ruta ecológica y hasta tres rutas alternativas.

  • geocodingResults, un array de elementos del tipo GeocodingResults. Para cada ubicación en la solicitud (origen, destino o punto de referencia intermedio) que especificaste como una string de dirección o como un Plus Code, la API realiza una búsqueda del ID de lugar. Cada elemento de este array contiene el ID de lugar correspondiente a una ubicación. No se incluyen las ubicaciones de la solicitud especificadas como ID de lugar o como coordenadas de latitud y longitud. Si especificaste todas las ubicaciones con los IDs de lugar o las coordenadas de latitud y longitud, no se proporciona este array.

  • fallbackInfo, del tipo FallbackInfo. Si la API no puede calcular una ruta a partir de todas las propiedades de entrada, podría recurrir al uso de una forma de cálculo diferente. Cuando se usa el modo de resguardo, este campo contiene información detallada sobre la respuesta de resguardo. De lo contrario, no se establecerá este campo.

La respuesta tiene el siguiente formato:

{
  // The routes array.
  "routes": [
    {
      object (Route)
    }
  ],
  // The place ID lookup results.
  "geocodingResults": [
    {
      object (GeocodedWaypoint)
    }
  ],
  // The fallback property.
  "fallbackInfo": {
    object (FallbackInfo)
  }
}

Descifra el array de rutas

La respuesta contiene el array routes, en el que cada elemento del array es del tipo Route. Cada elemento del array representa una ruta completa desde el origen hasta el destino. La API siempre muestra al menos una ruta, denominada ruta predeterminada.

Puedes solicitar rutas adicionales. Si solicitas una ruta ecológica, el array puede contener dos elementos: la ruta predeterminada y la ruta ecológica. También puedes configurar computeAlternativeRoutes como true en la solicitud para agregar hasta tres rutas alternativas a la respuesta.

Cada ruta del array se identifica con la propiedad de array routeLabels:

Valor Descripción
DEFAULT_ROUTE Identifica la ruta predeterminada.
FUEL_EFFICIENT Identifica la ruta ecológica.
DEFAULT_ROUTE_ALTERNATE Indifica una ruta alternativa.

El array legs contiene la definición de cada segmento de la ruta. Las propiedades restantes, como distanceMeters, duration y polyline,, contienen información sobre la ruta en su totalidad:

{
  "routeLabels": [
    enum (RouteLabel)
  ],
  "legs": [
    {
      object (RouteLeg)
    }
  ],
  "distanceMeters": integer,
  "duration": string,
  "routeLabels": [string],
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "description": string,
  "warnings": [
    string
  ],
  "viewport": {
    object (Viewport)
  },
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  }
  "routeToken": string
}

Debido a las condiciones de manejo actuales y otros factores, la ruta predeterminada y la ecológica pueden ser la misma. En este caso, el array routeLabels contiene ambas etiquetas: DEFAULT_ROUTE y FUEL_EFFICIENT.

{
  "routes": [
    {
      "routeLabels": [
        "DEFAULT_ROUTE",
        "FUEL_EFFICIENT"
      ],
     …
    }
  ]
}

Comprende el array de segmentos

Cada route en la respuesta contiene un array legs, en el que cada elemento del array legs es del tipo RouteLeg. Cada etapa del array define la ruta de un punto de referencia al siguiente punto de referencia a lo largo de la ruta. Una ruta siempre contiene al menos un segmento.

La propiedad legs contiene la definición de cada paso a lo largo del segmento del array steps. Las propiedades restantes, como distanceMeters, duration y polyline, contienen información sobre el segmento.

{
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "steps": [
    {
      object (RouteLegStep)
    }
  ],
  "travelAdvisory": {
    object (RouteLegTravelAdvisory)
  }
}

Comprende el array de pasos

Cada etapa de la respuesta contiene un array steps, en el que cada elemento del array steps es del tipo RouteLegStep. Un paso corresponde a una sola instrucción a lo largo de la pierna. Una pierna siempre contiene al menos un paso.

Cada elemento del array steps incluye la propiedad navigationInstruction, del tipo Navigationstruct, que contiene la instrucción del paso. Por ejemplo:

"navigationInstruction": {
  "maneuver": "TURN_LEFT",
  "instructions": "Turn left toward Frontage Rd"
}

El instructions puede contener información adicional sobre el paso. Por ejemplo:

"navigationInstruction": {
  "maneuver": "TURN_SLIGHT_LEFT",
  "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days"
}

En las propiedades restantes del paso, se describe información sobre este, como distanceMeters, duration y polyline:

{
  "distanceMeters": integer,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "navigationInstruction": {
    object (NavigationInstruction)
  }
}

Especifica el idioma de las instrucciones del paso

La API muestra información de ruta en el idioma local, transliterada a una secuencia de comandos legible por el usuario, si es necesario, mientras observa el idioma preferido. Los componentes de dirección se muestran en el mismo idioma.

  • Usa el parámetro languageCode de una solicitud para configurar de forma explícita el idioma de la ruta desde la lista de idiomas compatibles. Google actualiza con frecuencia los idiomas admitidos, por lo que es posible que esta lista no sea completa.

  • Si un nombre no está disponible en el idioma especificado, la API usa la coincidencia más cercana.

  • El idioma especificado puede influir en el conjunto de resultados que la API elige mostrar y el orden en el que se muestran. El geocodificador interpreta las abreviaturas de manera diferente según el idioma, como las abreviaturas para los tipos de calles o los sinónimos que pueden ser válidos en un idioma, pero no en otro. Por ejemplo, utca y tér son sinónimos de “calle” en húngaro.

Información sobre el array de GeocodingResults

Para cada ubicación en la solicitud (origen, destino o punto de referencia intermedio) que se especificó como una string de dirección o como un Plus Code, la API intenta encontrar la ubicación más relevante que tiene un ID de lugar correspondiente. Cada elemento del array geocodingResults contiene el campo placeID que contiene la ubicación como un ID de lugar y un campo type que especifica el tipo de ubicación, como street_address, premise o airport.

El array geocodingResults contiene tres campos:

  • origin: Si se especificó como una string de dirección o un Plus Code, es el ID de lugar del origen. De lo contrario, este campo se omite de la respuesta.

  • destination: Si se especificó como una string de dirección o un Plus Code, el ID de lugar del destino. De lo contrario, este campo se omite de la respuesta.

  • intermediates: Es un array que contiene el ID de lugar de cualquier punto de referencia intermedio especificado como una string de dirección o un Plus Code. Si especificas un punto de referencia intermedio con un ID de lugar o con coordenadas de latitud y longitud, se omitirá de la respuesta. Usa la propiedad intermediateWaypointRequestIndex en la respuesta para determinar qué punto de referencia intermedio de la solicitud corresponde al ID de lugar de la respuesta.

"geocodingResults": {
    "origin": {
        "geocoderStatus": {},
        "type": [
             enum (Type)
        ],
        "placeId": string
    },
    "destination": {
        "geocoderStatus": {},
        "type": [
            enum (Type)
        ],
        "placeId": string
    },
    "intermediates": [
        {
            "geocoderStatus": {},
            "intermediateWaypointRequestIndex": integer,
            "type": [
                enum (Type)
            ],
            "placeId": string
        },
        {
           "geocoderStatus": {},
           "intermediateWaypointRequestIndex": integer,
            "type": [
                enum (Type)
            ],
            "placeId": string
        }
    ]
}

Cómo interpretar los valores de respuesta localizados

Los valores de respuesta localizados son un campo de respuesta adicional que proporciona texto localizado para los valores de parámetros que se muestran. Se proporciona texto localizado para la duración del viaje, la distancia y el sistema de unidades (sistema métrico o imperial). Puedes solicitar valores localizados con una máscara de campo y puedes especificar el idioma y el sistema de unidades, o bien usar los valores que infiere la API. Para obtener más información, consulta LocalizedValues.

Por ejemplo, si especificas un código de idioma para unidades imperiales y alemanas (de), obtienes un valor de distanceMeters de 49889.7, pero también texto localizado que proporciona esa medición de distancia en unidades imperiales y alemanas, es decir, "31 Meile".

A continuación, se muestra un ejemplo de lo que vería con los valores localizados:

{ "localized_values":
  {
    "distance": { "text": "31,0 Meile/n" },
    "duration": { "text": 38 Minuten}.
    "static_duration": { "text": 36 Minuten}.
  }
}

Si no especificas el idioma o el sistema de unidades, la API infiere el idioma y las unidades de la siguiente manera:

  • El método ComputeRoutes infiere las unidades de ubicación y distancia a partir del punto de referencia de origen. Por lo tanto, para una solicitud de enrutamiento en EE.UU., la API infiere el idioma en-US y las unidades IMPERIAL.
  • El método ComputeRouteMatrix tiene como valor predeterminado el idioma “en-US” y las unidades METRIC.