Servicio Distance Matrix (original) (raw)

Ir al contenido principal

Servicio Distance Matrix

Nota: Bibliotecas del servidor

Descripción general

El servicio Distance Matrix de Google computa la distancia y la duración de los viajes entre varios orígenes y destinos con un medio de transporte determinado.

Este servicio no muestra información detallada de las rutas. La información de las rutas, incluidas las polilíneas y las instrucciones textuales, se puede obtener si se pasan el origen y el destino deseados al servicio Directions.

Cómo comenzar

Antes de usar el servicio Distance Matrix en la API de Maps JavaScript, asegúrate de que la API de Distance Matrix (heredada) esté habilitada en la consola de Google Cloud, en el mismo proyecto que configuraste para la API de Maps JavaScript.

Para ver tu lista de APIs habilitadas, haz lo siguiente:

  1. Ve a la consola de Google Cloud.
  2. Haz clic en el botón Seleccionar un proyecto, selecciona el mismo proyecto que configuraste para la API de Maps JavaScript y haz clic en Abrir.
  3. En la lista de APIs del Panel, busca API de Distance Matrix (heredada).
  4. Si ves la API en la lista, no necesitas hacer nada más. Si la API no aparece en la lista, habilítala en https://console.cloud.google.com/apis/library/distance-matrix-backend.googleapis.com.

Precios y políticas

Precios

Si deseas obtener información sobre las políticas de precios y uso del servicio Distance Matrix de JavaScript, consulta Uso y facturación de la API de Distance Matrix (heredado).

Nota: Cada consulta que se envía al servicio Distance Matrix está limitada por la cantidad de elementos permitidos, la cual se define multiplicando la cantidad de orígenes por la cantidad de destinos.

Políticas

El uso del servicio Distance Matrix debe cumplir con las políticas que se describen para la API de Distance Matrix (heredada).

Solicitudes de Distance Matrix

El acceso al servicio Distance Matrix es asíncrono, ya que la API de Google Maps debe realizar una llamada a un servidor externo. Por esa razón, debes pasar un método de devolución de llamada para que se ejecute una vez que se complete la solicitud y procesar los resultados.

Puedes acceder al servicio Distance Matrix en tu código a través del objeto constructor google.maps.DistanceMatrixService. El método DistanceMatrixService.getDistanceMatrix() inicia una solicitud al servicio Distance Matrix y le pasa un literal del objeto DistanceMatrixRequest que contiene los orígenes, los destinos y el medio de transporte, así como un método de devolución de llamada que se ejecuta cuando se recibe la respuesta.

var origin1 = new google.maps.LatLng(55.930385, -3.118425); var origin2 = 'Greenwich, England'; var destinationA = 'Stockholm, Sweden'; var destinationB = new google.maps.LatLng(50.087692, 14.421150);

var service = new google.maps.DistanceMatrixService(); service.getDistanceMatrix( { origins: [origin1, origin2], destinations: [destinationA, destinationB], travelMode: 'DRIVING', transitOptions: TransitOptions, drivingOptions: DrivingOptions, unitSystem: UnitSystem, avoidHighways: Boolean, avoidTolls: Boolean, }, callback);

function callback(response, status) { // See Parsing the Results for // the basics of a callback function. }

Ver ejemplo

DistanceMatrixRequest contiene los siguientes campos:

Medios de transporte

Al calcular los tiempos y las distancias, puedes especificar el medio de transporte que se usará. Actualmente, se admiten los siguientes medios de transporte:

Opciones de transporte público

El servicio de transporte público actualmente se encuentra en etapa experimental. Durante esta etapa, implementaremos límites de frecuencia para evitar el abuso de la API. Eventualmente, impondremos un límite en la cantidad total de consultas por carga de mapa según el uso pertinente de la API.

Las opciones disponibles para una solicitud de Distance Matrix varían según el medio de transporte. En las solicitudes de transporte público, se ignoran las opciones avoidHighways y avoidTolls. Puedes especificar opciones de rutas específicas de transporte público a través del literal del objeto TransitOptions.

Las solicitudes de transporte público están sujetas al horario. Solo se mostrarán cálculos para horarios futuros.

El literal del objeto TransitOptions contiene los siguientes campos:

{ arrivalTime: Date, departureTime: Date, modes: [transitMode1, transitMode2] routingPreference: TransitRoutePreference }

Estos campos se explican a continuación:

Opciones de manejo

Usa el objeto drivingOptions para especificar una hora de salida y, así, calcular la mejor ruta hacia tu destino en función de las condiciones de tráfico esperadas. También puedes especificar si quieres que el tiempo estimado en el tráfico sea pesimista, optimista o la mejor estimación en función de las condiciones de tráfico históricas y el tráfico en tiempo real.

El objeto drivingOptions contiene los siguientes campos:

{ departureTime: Date, trafficModel: TrafficModel }

Estos campos se explican a continuación:

A continuación, se muestra un ejemplo de DistanceMatrixRequest para rutas en automóvil, que incluye una hora de salida y un modelo de tráfico:

{ origins: [{lat: 55.93, lng: -3.118}, 'Greenwich, England'], destinations: ['Stockholm, Sweden', {lat: 50.087, lng: 14.421}], travelMode: 'DRIVING', drivingOptions: { departureTime: new Date(Date.now() + N), // for the time N milliseconds from now. trafficModel: 'optimistic' } }

Respuestas de Distance Matrix

Una llamada exitosa al servicio Distance Matrix muestra un objeto DistanceMatrixResponse y un objeto DistanceMatrixStatus. Estos objetos se pasan a la función de devolución de llamada que especificaste en la solicitud.

El objeto DistanceMatrixResponse contiene información sobre la distancia y la duración de cada par de origen y destino para el que se puede calcular una ruta.

{ "originAddresses": [ "Greenwich, Greater London, UK", "13 Great Carleton Square, Edinburgh, City of Edinburgh EH16 4, UK" ], "destinationAddresses": [ "Stockholm County, Sweden", "Dlouhá 609/2, 110 00 Praha-Staré Město, Česká republika" ], "rows": [ { "elements": [ { "status": "OK", "duration": { "value": 70778, "text": "19 hours 40 mins" }, "distance": { "value": 1887508, "text": "1173 mi" } }, { "status": "OK", "duration": { "value": 44476, "text": "12 hours 21 mins" }, "distance": { "value": 1262780, "text": "785 mi" } } ] }, { "elements": [ { "status": "OK", "duration": { "value": 96000, "text": "1 day 3 hours" }, "distance": { "value": 2566737, "text": "1595 mi" } }, { "status": "OK", "duration": { "value": 69698, "text": "19 hours 22 mins" }, "distance": { "value": 1942009, "text": "1207 mi" } } ] } ] }

Resultados de Distance Matrix

A continuación, se explican los campos admitidos en una respuesta.

Códigos de estado

En la respuesta de Distance Matrix, se incluye un código de estado para la respuesta completa, así como un estado para cada elemento.

Códigos de estado de la respuesta

Los códigos de estado que se aplican a DistanceMatrixResponse se pasan en el objeto DistanceMatrixStatus y, además, incluyen lo siguiente:

Códigos de estado de los elementos

Los siguientes códigos de estado se aplican a objetos DistanceMatrixElement específicos:

Cómo analizar los resultados

El objeto DistanceMatrixResponse contiene un row para cada origen que se pasó en la solicitud. Cada fila contiene un campo element para cada vinculación de ese origen con los destinos proporcionados.

function callback(response, status) { if (status == 'OK') { var origins = response.originAddresses; var destinations = response.destinationAddresses;

for (var i = 0; i < origins.length; i++) {
  var results = response.rows[i].elements;
  for (var j = 0; j < results.length; j++) {
    var element = results[j];
    var distance = element.distance.text;
    var duration = element.duration.text;
    var from = origins[i];
    var to = destinations[j];
  }
}

} }

Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.

Última actualización: 2025-06-10 (UTC)