1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| //Déclarer deux variables autocomplete pour l'origine et la destination
var autocomplete, autocompletedestination;
function initAutocomplete() {
autocomplete = new google.maps.places.Autocomplete(
(document.getElementById('autocomplete')),
{types: ['geocode']});
autocompletedestination = new google.maps.places.Autocomplete(
(document.getElementById('autocompletedestination')),
{types: ['geocode']});
}
//Foncton pour convertir le degré en radian.Cette fonction va servir pour le calcul de la distance
function deg2rad(deg) {
return deg * (Math.PI/180)
}
//Fonction pour calculer la distance en KM entre deux villes
function getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) {
var R = 6371; // Radius of the earth in km
var dLat = deg2rad(lat2-lat1); // deg2rad below
var dLon = deg2rad(lon2-lon1);
var a =
Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2)
;
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c; // Distance in km
return d;
}
function calculer() {
var latitudeorigin=0;
var longitudeorigin=0;
var latitudedestination=0;
var longitudedestination=0;
//recupérer les informations de la position d'origine
var geocoder = new google.maps.Geocoder();
var address = document.getElementById("autocomplete").value;
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latitude = results[0].geometry.location.lat();
longitude = results[0].geometry.location.lng();
latitudeorigin = latitude;
longitudeorigin = longitude;
// alert(latitudeorigin);
//alert(longitudeorigin);
} else {
alert("Veuillez vérifier l'origine");
}
});
//recupérer les informations de la destination et calculer le trajet à la fin
var geocoderdestination = new google.maps.Geocoder();
var addressdestination = document.getElementById("autocompletedestination").value;
geocoderdestination.geocode({ 'address': addressdestination }, function (resultsdestination, statusdestination) {
if (statusdestination == google.maps.GeocoderStatus.OK) {
latitudee = resultsdestination[0].geometry.location.lat();
longitudee = resultsdestination[0].geometry.location.lng();
latitudedestination = latitudee;
longitudedestination = longitudee;
var x = getDistanceFromLatLonInKm(latitudeorigin,longitudeorigin,latitudedestination,longitudedestination);
//Prendre trois chiffres après la virgule
var conversion = x.toFixed(3);
window.alert("la distance en km est " + conversion);
x = 0;
} else {
alert("Veuillez vérifier la destination");
}
});
}; |
Partager