Solución:
los respuesta anterior es en violación de Condiciones de servicio de la API de Google, y por lo tanto, incorrecto.
La API de Google Maps solo le permite calcular el tiempo de viaje si se hace referencia a un mapa de Google que se muestra al usuario.
No puede usar la API si no muestra un mapa de Google al usuario final del servicio.
Actualizar:
Cualquier respuesta aquí, que no muestre los resultados finales mapeados en un mapa de Google, infringe los términos de servicio antes mencionados y, finalmente, es incorrecta.
Para el registro: En este momento (año 2015) GDirections, GLatLng, GEvent, etc. obsoleto.
Puede utilizar la clase google.maps.DirectionsService (API de JavaScript de Google Maps V3)
En el siguiente fragmento, la ubicación y el objetivo son objetos que contienen coordenadas de latitud y longitud.
1) La clase google.maps.DirectionsService admite tanto LatLng como valores de cadena para alimentar sus propiedades de origen y destino.
2) Un LatLng es un punto en coordenadas geográficas: latitud y longitud.
var origin = new google.maps.LatLng( location.latitude, location.longitude ); // using google.maps.LatLng class
var destination = target.latitude + ', ' + target.longitude; // using string
var directionsService = new google.maps.DirectionsService();
var request = {
origin: origin, // LatLng|string
destination: destination, // LatLng|string
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route( request, function( response, status ) {
if ( status === 'OK' ) {
var point = response.routes[ 0 ].legs[ 0 ];
$( '#travel_data' ).html( 'Estimated travel time: ' + point.duration.text + ' (' + point.distance.text + ')' );
}
} );
Sí, esto definitivamente es posible usando la API. Puede construir un objeto GDirections sin un mapa o div de direcciones. Puede realizar una solicitud de carga de A a B y luego llamar al método getDuration para obtener el tiempo total de viaje.
Primero necesitas crear un objeto de indicaciones:
// no need to pass map or results div since
// we are only interested in travel time.
var directions = new GDirections ();
Luego haga su solicitud de carga para resolver las direcciones (he usado dos latitudes y longitudes como mis puntos de inicio y finalización, pero también puede usar direcciones aquí):
var wp = new Array ();
wp[0] = new GLatLng(32.742149,119.337218);
wp[1] = new GLatLng(32.735347,119.328485);
directions.loadFromWaypoints(wp);
Entonces necesitas escuchar el carga evento para que puedas llamar getDuration una vez resueltas las instrucciones:
GEvent.addListener(directions, "load", function() {
$('log').innerHTML = directions.getDuration ().seconds + " seconds";
});
Puede encontrar el ejemplo completo aquí y el JavaScript aquí. Puede consultar la documentación de Google Maps para obtener más información sobre las opciones que puede dar al objeto GDirections (como distancia a pie, etc.). También deberías escuchar el error evento por fallas de geocodificación.