Bien le bonjour lecteurs,
Je souhaiterai générer un itinéraire a plusieurs point comme ceci:
Cliquer moi dessus
Je voudrai introduire ceci dans mon site via l'API de Google Map. J'ai déjà réussis en faisant 2 points.
J'avais l'idée de générer les itinéraires comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function calcRoute() { // Calcul de l'itinéraire. var directionsService = new google.maps.DirectionsService(); var start = document.getElementById("entry_1").value; var end = document.getElementById("entry_2").value; if (start != '' && end != '') { var request = { origin: start, destination: end, travelMode: google.maps.TravelMode.DRIVING }; directionsService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); } }); } else alert("Veuillez saisir un lieu de départ ET d'arrivée."); }
Départ -> Point 1
Point 1 -> Point 2
Point N-1 -> Point N
Point N -> Fin
J'ai donc adapter ma fonction calcRoute() comme ceci:
Je récupère toutes les destinations dans une Array et boucle dessus comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function calcRouteBis(pointA, pointB) { // Calcul de l'itinéraire. var directionsService = new google.maps.DirectionsService(); var start = pointA; var end = pointB; if (start != '' && end != '') { var request = { origin: start, destination: end, travelMode: google.maps.TravelMode.DRIVING }; directionsService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); } }); } else alert("Veuillez saisir un lieu de départ ET d'arrivée."); }
J'arrive bien a récupérer les adresses, mais ça n'a pas l'air de fonctionner, sauriez-vous comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 function CalculAvecPoints(){ var tableau = new Array(); if(document.getElementById('entry_1').value != ""){ alert(document.getElementById('entry_1').value); tableau.push(document.getElementById("entry_1").value); } if(document.getElementById('point_0').value != ""){ alert(document.getElementById('point_0').value); tableau.push(document.getElementById('point_0').value); } if(document.getElementById('point_1').value != ""){ alert(document.getElementById('point_1').value); tableau.push(document.getElementById('point_1').value); } if(document.getElementById('point_2').value != ""){ alert(document.getElementById('point_2').value); tableau.push(document.getElementById('point_2').value); } if(document.getElementById('point_3').value != ""){ alert(document.getElementById('point_3').value); tableau.push(document.getElementById('point_3').value); } if(document.getElementById('point_4').value != ""){ alert(document.getElementById('point_4').value); tableau.push(document.getElementById('point_4').value); } if(document.getElementById('entry_2').value != ""){ alert(document.getElementById('entry_2').value); tableau.push(document.getElementById("entry_2").value); } for(var i=0; i+1 < tableau.length; i++){ calcRouteBis(tableau.valueOf(i),tableau.valueOf(i+1)); } }
Merci d'avance
Cordialement
bplus
Partager