calculate the total distance on a route google maps

0

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

    
asked by Mateo 29.07.2018 в 07:41
source

0 answers