Stack Overflow en español Asked by Ricardo Sauceda on August 26, 2021
Con mi código creo un arreglo de Markers de Google Maps, en donde necesito el puntoA y el puntoB para pintar una ruta en el mapa y calcular los kilometros.
function addMarker(location, addrs, counter) {
if(counter <= 2){
marker = new google.maps.Marker({
position: location,
map: exports.map,
animation: google.maps.Animation.DROP,
title: "Point: "+ counter + "Address:" + addrs
});
exports.markers.push(marker);
}else{
calculateRoute();
alert("Ya terminaste de seleccionar la ruta");
}
} // Sets the map on all markers in the array.
Una vez que capturo mis 2 Markes, quisiera mostrar y pintar la ruta entre el puntoA y el puntoB.
Entonces, hice una function llamada calculateRute() en donde leo mi arreglo de Markers y obtengo las position (que son mis coordenadas del PUNTOA y el PUNTOB), lo asigno a otro arreglo en donde solo quiero poner las coordenadas y las muestro en un ALERT(), hasta acá todo bien.
function calculateRoute(){
for (var i = 0; i < exports.markers.length; i++) {
maping[i] = exports.markers[i].position;
//show my coordenates
alert(maping[i]);
}
var request = {
origin: maping[0],
destination: maping[1],
travelMode: 'DRIVING'
}
directionsService.route(request, function(result, status){
if (status=="OK") {
directionsDisplay.setDirections(result);
}
})
}
Cuando vamos a request y le pasamos los atributos del ARRAY de COORDENADAS (puntoA y puntoB) por su posición a ORIGIN y DESTINATION, NO ME MUESTRA NADA.
No logro obtener como tal las coordenadas y asignarlas, no entiendo porque no funciona asi como lo estoy manejando.
Lógico, al final solo pinta mis dos Markers y no me pinta la ruta porque no obtengo las coordenadas.
Logre obtener la longitud y la latitud haciendo 2 arreglos, no creo que sea la mejor opción, pero me ha funcionado hasta ahora:
function calculateRoute(){
var lang = [];
var lat = [];
for (var i = 0; i < exports.markers.length; i++) {
lat[i] = exports.markers[i].getPosition().lat();
lang[i] = exports.markers[i].getPosition().lng();
//alert("LAT: " + lat[i] + " LANG: " + lang[i]);
}
var location_a, location_b;
location_a = lat[0] +","+ lang[0];
location_b = lat[1] +","+ lang[1];
var request = {
origin: location_a,
destination: location_b,
travelMode: 'DRIVING'
}
directionsService.route(request, function(result, status){
if (status=="OK") {
setMapOnAll(null);
directionsDisplay.setMap(map);
directionsDisplay.setDirections(result);
// Calculate and display the distance between markers
calculateDistance(location_a, location_b);
}
})
}
Correct answer by Ricardo Sauceda on August 26, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP