Saltar al contenido

Uso de la API de Google Maps para obtener datos de tiempo de viaje

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *