83 lines
3.0 KiB
JavaScript
83 lines
3.0 KiB
JavaScript
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 + ' <br>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 + ' <br>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();
|
|
}
|