I am using a code to calculate a route, I need to obtain the total distance in Google maps, that is, add the distance between A + B + C + D = total distance.
I'm using service.getDistanceMatrix({
, but I can not add all the distances to get a total result.
this is my JavaScript
var source, destination;
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
google.maps.event.addDomListener(window, 'load', function () {
directionsDisplay = new google.maps.DirectionsRenderer({ 'draggable': true });
});
// P1
var stop;
var markers = [];
var waypts = [];
var paradas = [ "6.3368471,-75.5497650","6.3458681,-75.5471257","6.3458681,-75.5470613","6.3479794,-75.5493090","6.3469291,-75.5493895","6.3453456,-75.5515674","6.3509597,-75.5574307","6.3500480,-75.5567039","6.3395342,-75.5656866","6.3378121,-75.5700586"
];
directionsDisplay = new google.maps.DirectionsRenderer({
suppressMarkers: false,
});
window.onload=function(){
function initialize() {
//P2
var mapOptions = {
zoom: 15,
//center: new google.maps.LatLng(6.3490548, -75.55802080000001),
mapTypeId: google.maps.MapTypeId.ROADMAP,
}
var map = new google.maps.Map(document.getElementById('dvMap'), mapOptions);
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById('dvPanel'));
//calcRoute();
}
//source = new google.maps.LatLng(6.3490548, -75.55802080000001);
source = new google.maps.LatLng(
<?php echo $rowO[ 'r_lat' ];
echo ',';
echo $rowO[ 'r_lng' ];?>);
//destination = new google.maps.LatLng(6.334624, -75.556157);
destination = new google.maps.LatLng(
<?php echo $rowD[ 'r_lat' ];
echo ',';
echo $rowD[ 'r_lng' ]; ?>);
//P3
function calcRoute() {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
createMarker(source, 'source', false);
createMarker(destination, 'destination', false);
var route = response.routes[0];
for (var i = 1; i < route['legs'].length; i++) {
console.log(route['legs'][i].start_location.toString(), waypts[i - 1].location.toString());
waypts[i - 1].location = route['legs'][i].start_location
}
for (var i = 0; i < waypts.length; i++) {
createMarker(waypts[i].location, i, true);
}
}
var request = {
origin: source,
destination: destination,
waypoints: waypts,
optimizeWaypoints: false,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix({
origins: [source],
destinations: paradas,
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback);
function callback(response, status) {
if (status == 'OK') {
var origins = response.originAddresses;
var destinations = response.destinationAddresses;
for (var i = 0; i < destinations.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 distance = response.rows[0].elements[0].distance.text;
var duration = element.duration.text;
var from = origins[i];
var to = destinations[j];
var dvDistance = document.getElementById("dvDistance");
dvDistance.innerHTML = "";
dvDistance.innerHTML += "Distance: " + distance + "<br />";
dvDistance.innerHTML += "Duration:" + duration;
}
}
}
}
How can I add each trip to get the total distance?
Sample image