Via Postcode Distance Calc

by Krzysztof Niecikowski

HTML

Postcode 1:<br />
<input name='postcode1' id='postcode1' type="text" />
<br />

Postcode 2:<br />
<input name='postcode2' id='postcode2' type="text" />
<div id="viapostcode"></div><br>
<button class="addpostcode">Add Postcode</button>
<hr />

Distance:<br />
<div id="totaldistance"></div><br />
Travel Time:<br />
<div id="totaltimetaken"></div>



<script async defer
    src="https://maps.google.com/maps/api/js?key=AIzaSyAAR3c-9711DgBRmTZXO8BtgjjS9n1Yd20">
    </script>

JavaScript

$(document).ready(function() {
  $('[id^=postcode]').keyup(function() {

    var sumTotalDistance = 0;
    var sumTotalTravelTime = 0;
    
    
    var start = $("#postcode1").val()
    var end = $("#postcode2").val()

    var request = {
        origin: start,
        destination: end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING,
        unitSystem: google.maps.DirectionsUnitSystem.IMPERIAL
    };
    var directionsService = new google.maps.DirectionsService();
    var directionsDisplay = new google.maps.DirectionsRenderer();
    directionsService.route(request, function(response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
            var distance_val = response.routes[0].legs[0].distance.value;
            var timetaken_val = response.routes[0].legs[0].duration.value;
						sumTotalDistance =  Number(sumTotalDistance) + Number(distance_val);
            sumTotalTravelTime =  Number(sumTotalTravelTime) + Number(timetaken_val);
            $("#totaldistance").html(sumTotalDistance);
            $("#totaltimetaken").html(sumTotalTravelTime);
        } else {}
    });
});
});


$(document).ready(function() {
    var max_postcode = 5; 
    var x = 2; 
    $(".addpostcode").click(function(e){ 
        e.preventDefault();
        if(x < max_postcode){ 
            x++; 
			$("#viapostcode").append('Postcode'+x+'<br /><input name="postcode'+x+'" id="postcode'+x+'" type="text" onkeyup="calculate_distance();" /><br>');
        }
    });
});