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>');
}
});
});