Obtén una ruta

Desarrolladores del Espacio Económico Europeo (EEE)

Una ruta es un camino navegable entre una ubicación de partida, o punto de partida, y una ubicación final, o destino. Puedes elegir obtener una ruta para diferentes medios de transporte, como a pie, en bicicleta o en diferentes tipos de vehículos. También puedes solicitar detalles de la ruta, como la distancia, el tiempo estimado para navegar por la ruta, los peajes esperados y las instrucciones paso a paso para navegar por la ruta.

Llama al método computeRoutes() para solicitar una ruta entre dos ubicaciones. En el siguiente ejemplo, se muestra cómo definir una solicitud y, luego, llamar a computeRoutes() para obtener una ruta.

  // Import the Routes library.
  const { Route } = await google.maps.importLibrary('routes');

  // Define a computeRoutes request.
  const request = {
    origin: 'Mountain View, CA',
    destination: 'San Francisco, CA',
  };

  // Call the computeRoutes() method to get routes.
  const {routes} = await Route.computeRoutes(request);
    

Elige los campos que se devolverán

Cuando solicitas una ruta, debes usar una máscara de campo para especificar qué información debe devolver la respuesta. Puedes especificar los nombres de las propiedades de la clase Route en la máscara de campo.

Usar una máscara de campo también garantiza que no solicites datos innecesarios, lo que, a su vez, ayuda a reducir la latencia de respuesta y evita que se devuelva información que tu sistema no necesita.

Especifica la lista de campos que necesitas configurando la propiedad ComputeRoutesRequest.fields, como se muestra en el siguiente fragmento:

TypeScript

// Define a routes request.
const request = {
  origin: 'Mountain View, CA',
  destination: 'San Francisco, CA',
  travelMode: 'DRIVING',
  fields: ['path'], // Request fields needed to draw polylines.
};

JavaScript

// Define a routes request.
const request = {
    origin: 'Mountain View, CA',
    destination: 'San Francisco, CA',
    travelMode: 'DRIVING',
    fields: ['path'], // Request fields needed to draw polylines.
};

Cómo especificar ubicaciones para una ruta

Para calcular una ruta, debes especificar, como mínimo, las ubicaciones del origen y el destino de la ruta, y una máscara de campos. También puedes especificar puntos de referencia intermedios a lo largo de una ruta y usarlos para realizar otras acciones, como agregar paradas o puntos de paso.

En ComputeRoutesRequest, puedes especificar una ubicación de cualquiera de las siguientes maneras:

Puedes especificar ubicaciones para todos los puntos de la ruta de la misma manera en una solicitud o combinarlas. Por ejemplo, puedes usar coordenadas de latitud y longitud para el punto de partida y un objeto Place para el punto de destino.

Para mayor eficiencia y precisión, usa objetos Place en lugar de coordenadas de latitud y longitud o cadenas de direcciones. Los IDs de lugar son explícitos y únicos, y proporcionan beneficios de geocodificación para el enrutamiento, como puntos de acceso y variables de tráfico. Ayudan a evitar las siguientes situaciones que pueden surgir de otras formas de especificar una ubicación:

  • Si usas coordenadas de latitud y longitud, es posible que la ubicación se ajuste a la ruta más cercana a esas coordenadas, que podría no ser un punto de acceso a la propiedad o incluso una ruta que lleve al destino de forma rápida o segura.
  • Las cadenas de direcciones primero deben geocodificarse con la API de Routes para convertirlas en coordenadas de latitud y longitud antes de que se pueda calcular una ruta. Esta conversión puede afectar el rendimiento.

Especifica una ubicación como un objeto Place (opción preferida)

Para especificar una ubicación con un lugar, crea una instancia Place nueva. En el siguiente fragmento, se muestra cómo crear instancias nuevas de Place para origin y destination, y, luego, cómo usarlas en un ComputeRoutesRequest:

TypeScript

// Use Place IDs in a directions request.
const originPlaceInstance = new Place({
  id: 'ChIJiQHsW0m3j4ARm69rRkrUF3w', // Mountain View, CA
});

const destinationPlaceInstance = new Place({
  id: 'ChIJIQBpAG2ahYAR_6128GcTUEo', // San Francisco, CA
});

const requestWithPlaceIds = {
  origin: originPlaceInstance,
  destination: destinationPlaceInstance,
  fields: ['path'], // Request fields needed to draw polylines.
}; 

JavaScript

// Use Place IDs in a directions request.
const originPlaceInstance = new Place({
    id: 'ChIJiQHsW0m3j4ARm69rRkrUF3w', // Mountain View, CA
});
const destinationPlaceInstance = new Place({
    id: 'ChIJIQBpAG2ahYAR_6128GcTUEo', // San Francisco, CA
});
const requestWithPlaceIds = {
    origin: originPlaceInstance,
    destination: destinationPlaceInstance,
    fields: ['path'], // Request fields needed to draw polylines.
};

Coordenadas de latitud y longitud

Para especificar una ubicación como coordenadas de latitud y longitud, crea una instancia nueva de google.maps.LatLngLiteral, google.maps.LatLngAltitude o google.maps.LatLngAltitudeLiteral. En el siguiente fragmento, se muestra cómo crear instancias nuevas de google.maps.LatLngLiteral para origin y destination, y, luego, cómo usarlas en un computeRoutesRequest:

TypeScript

// Use lat/lng in a directions request.
// Mountain View, CA
const originLatLng = {lat: 37.422000, lng: -122.084058};
// San Francisco, CA
const destinationLatLng = {lat: 37.774929, lng: -122.419415};

// Define a computeRoutes request.
const requestWithLatLngs = {
  origin: originLatLng,
  destination: destinationLatLng,
  fields: ['path'],
};

JavaScript

// Use lat/lng in a directions request.
// Mountain View, CA
const originLatLng = { lat: 37.422000, lng: -122.084058 };
// San Francisco, CA
const destinationLatLng = { lat: 37.774929, lng: -122.419415 };
// Define a computeRoutes request.
const requestWithLatLngs = {
    origin: originLatLng,
    destination: destinationLatLng,
    fields: ['path'],
};

Cadena de dirección

Las cadenas de dirección son direcciones literales representadas por una cadena (como "1600 Amphitheatre Parkway, Mountain View, CA"). La geocodificación es el proceso de convertir una cadena de dirección en coordenadas de latitud y longitud (como latitud 37.423021 y longitud -122.083739).

Cuando pasas una cadena de dirección como la ubicación de una parada, la biblioteca de Routes geocodifica internamente la cadena para convertirla en coordenadas de latitud y longitud.

En el siguiente fragmento, se muestra cómo crear un objeto ComputeRoutesRequest con una cadena de dirección para origin y destination:

TypeScript

// Use address strings in a directions request.
const requestWithAddressStrings = {
  origin: '1600 Amphitheatre Parkway, Mountain View, CA',
  destination: '345 Spear Street, San Francisco, CA',
  fields: ['path'],
};

JavaScript

// Use address strings in a directions request.
const requestWithAddressStrings = {
    origin: '1600 Amphitheatre Parkway, Mountain View, CA',
    destination: '345 Spear Street, San Francisco, CA',
    fields: ['path'],
};

Establece la región de la dirección

Si pasas una cadena de dirección incompleta como la ubicación de una parada, es posible que la API use las coordenadas de latitud y longitud geocodificadas incorrectas. Por ejemplo, realizas una solicitud en la que especificas "Toledo" como origen y "Madrid" como destino para una ruta en automóvil:

// Define a request with an incomplete address string.
const request = {
  origin: 'Toledo',
  destination: 'Madrid',
};
    

En este ejemplo, "Toledo" se interpreta como una ciudad del estado de Ohio en Estados Unidos, no en España. Por lo tanto, la solicitud devuelve un array vacío, lo que significa que no existen rutas.

Puedes configurar la API para que muestre resultados personalizados según una región en particular si incluyes el parámetro regionCode. Este parámetro especifica el código de región como un valor de dos caracteres del ccTLD ("dominio de nivel superior"). La mayoría de los códigos de ccTLD son idénticos a los códigos ISO 3166-1, con algunas excepciones notables. Por ejemplo, el ccTLD del Reino Unido es "uk" (.co.uk), mientras que su código ISO 3166-1 es "gb" (técnicamente para la entidad de "El Reino Unido de Gran Bretaña e Irlanda del Norte").

Una solicitud de direcciones de "Toledo" a "Madrid" que incluye el parámetro regionCode devuelve resultados adecuados porque "Toledo" se interpreta como una ciudad de España:

const request = {
  origin: 'Toledo',
  destination: 'Madrid',
  region: 'es', // Specify the region code for Spain.
};
    

Plus Code

Muchas personas no tienen una dirección precisa, lo que puede dificultar la recepción de entregas. O bien, las personas con una dirección pueden preferir aceptar entregas en ubicaciones más específicas, como una entrada trasera o un muelle de carga.

Los Plus Codes son como direcciones para las personas o los lugares que no tienen una dirección real. En lugar de direcciones con nombres de calles y números, los Plus Codes se basan en coordenadas de latitud y longitud, y se muestran en forma de números y letras.

Google desarrolló los Plus Codes para que todos y todo puedan beneficiarse de las direcciones. Un código plus es una referencia de ubicación codificada, derivada de las coordenadas de latitud y longitud, que representa un área: 1/8,000 de un grado por 1/8,000 de un grado (aproximadamente 14 m x 14 m en el Ecuador) o menos. Puedes usar Plus Codes como reemplazo de las direcciones en los lugares donde estas no existen o donde los edificios no están numerados o las calles no tienen nombre.

Los Plus Codes deben tener el formato de un código global o un código compuesto:

  • El código global se compone de un código de área de 4 caracteres y un código local de 6 caracteres o más. Por ejemplo, para la dirección "1600 Amphitheatre Parkway, Mountain View, CA", el código global es "849V" y el código local es "CWC8+R9". Luego, usa el código Plus completo de 10 caracteres para especificar el valor de ubicación como "849VCWC8+R9".
  • Un código compuesto se compone de un código local de 6 caracteres o más combinado con una ubicación explícita. Por ejemplo, la dirección "450 Serra Mall, Stanford, CA 94305, EE.UU." tiene un código local de "CRHJ+C3". En el caso de una dirección compuesta, combina el código local con la ciudad, el estado, el código postal y la parte del país de la dirección en el formato "CRHJ+C3 Stanford, CA 94305, USA".

En el siguiente fragmento, se muestra cómo calcular una ruta especificando un punto de referencia para el origen y el destino de la ruta con códigos Plus:

TypeScript

// Use Plus Codes in a directions request.
const requestWithPlusCodes = {
  origin: '849VCWC8+R9', // Mountain View, CA
  destination: 'CRHJ+C3 Stanford, CA 94305, USA', // Stanford, CA
  fields: ['path'],
};

JavaScript

// Use Plus Codes in a directions request.
const requestWithPlusCodes = {
    origin: '849VCWC8+R9', // Mountain View, CA
    destination: 'CRHJ+C3 Stanford, CA 94305, USA', // Stanford, CA
    fields: ['path'],
};