3 votos

Google Maps Decodepath cambia el nombre de la variable

Tengo este código:

    var directionsService = new google.maps.DirectionsService();

    var request = {
      origin : start,
            destination : end,
            travelMode : google.maps.DirectionsTravelMode.DRIVING
    };

directionsService.route(request, function(response, status) {
    var coords;
    if (status == google.maps.DirectionsStatus.OK) {
        coords = google.maps.geometry.encoding.decodePath(response.routes[0].overview_polyline.points);
        callback(coords);
    }
});

Ayer el decodePath trajo coordenadas cuyo nombre de variables eran Ya y Za, hoy se convirtieron en hb e ib. ¿Por qué?

4voto

scribu Puntos 566

No debes acceder a las coordenadas utilizando los nombres de las propiedades (es decir, 'Ya' y 'Za') en su lugar utiliza los métodos .lat() y .lng() del objeto google.maps.LatLng.

Así que asumo que tu función callback hace un bucle a través del array de las coordenadas (como variable 'coords'). El sencillo ejemplo siguiente recorrería esta matriz e imprimiría cada coordenada en la consola de la forma yy.yyyyy,-xx.xxxx

function callback(coords){
    var i;
    for(i=0;i<coords.length;i++){
        console.log(coords[i].lat()+','+coords[i].lng())
    }
}

Este código asume que la variable 'coords' es la propiedad overview_path del objeto DirectionsRoute (parte del objeto DirectionsResult.). Esto debería ser lo que obtienes usando la función decodePath().

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X