function calculatedistance(lat1, lat2, lat3, lat4) {
//var vanlat = // Define van latitude;
//var vanlng = // Define van longitude;
//var breakdownlat = // Define breakdown latitude;
//var breakdownlng = // Define breakdown longitude;
var heremapurlvaluetest = "https://route.ls.hereapi.com/routing/7.2/calculateroute.json?" +
"waypoint0=" + lat1 + "," + lat2 +
"&waypoint1=" + lat3 + "," + lat4 +
"&mode=shortest%3Bcar%3Btraffic%3Aenabled&departure=now" +
"&apiKey=DW3-YCFFZtJzlAQpTfVPoXADcZpEeZe3t8h6ganVsqo";
console.log(heremapurlvaluetest);
var request = getDataFromAPI("GET", heremapurlvaluetest, function (data) {
// Handle response data here
// console.log(data);
readDistanceAndDuration(data);
});
// Error handling
if (!request) {
$('#spninfo').html('Duration: ' + duration + '
Distance: ' + distance + ' km');
console.error("Failed to create XMLHttpRequest.");
return;
}
}
function readDistanceAndDuration(response) {
// Parse JSON response
var jsonResponse = JSON.parse(response);
// Check if response contains the summary section
if (jsonResponse && jsonResponse.response && jsonResponse.response.route && jsonResponse.response.route.length > 0) {
var route = jsonResponse.response.route[0]; // Assuming there's only one route
// Extract distance and duration from the summary section
var summary = route.summary;
distance = summary.distance; // Distance in meters
var durationInSeconds = summary.travelTime; // Duration in seconds
// Convert duration from seconds to hours and minutes
var durationInHours = Math.floor(durationInSeconds / 3600);
var durationInMinutes = Math.floor((durationInSeconds % 3600) / 60);
distance = (distance / 1000);
// if (durationInHours = "0") {
// //alert('if');
// duration = durationInMinutes + " minutes";
// }
// else {
// duration = durationInHours + " hours " + durationInMinutes + " minutes";
// }
duration = durationInHours + " hours " + durationInMinutes + " minutes";
// Output the distance and duration
console.log(distance + 'distance' + duration);
// $('#spninfo').html('Duration: ' + duration + '
Distance: ' + distance + ' km');
} else {
console.error("Invalid or empty response.");
}
}
function getDataFromAPI(method, url, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
// Request was successful
if (callback) {
callback(xhr.responseText);
}
} else {
// Error handling
console.error("Error occurred while fetching data:", xhr.status);
}
}
};
xhr.open(method, url);
xhr.send();
}