IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Itinéraire à 3 points [Google Maps]


Sujet :

APIs Google

  1. #1
    Membre averti
    Homme Profil pro
    Alternance
    Inscrit en
    Juin 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Alternance
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2013
    Messages : 21
    Par défaut Itinéraire à 3 points
    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.

    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.");
    }
    J'avais l'idée de générer les itinéraires comme ceci:
    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:
    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.");
    }
    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
    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));
    	}
    }
    J'arrive bien a récupérer les adresses, mais ça n'a pas l'air de fonctionner, sauriez-vous comment faire ?

    Merci d'avance

    Cordialement

    bplus

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 202
    Par défaut
    Bonsoir,
    il te faut rajouter les points, "étape", dans les options de ton google.maps.DirectionsService, en utilisant la propriété waypoints avec le format qui va bien.
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'waypoints': [
        { 'location':'Paris'},
        { 'location':'Nantes'}
      ],
    google.maps.DirectionsService

  3. #3
    Membre averti
    Homme Profil pro
    Alternance
    Inscrit en
    Juin 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Alternance
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2013
    Messages : 21
    Par défaut
    Merci NoSmoking c'est exactement ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Google Maps] Recherche si un point se trouve sur un itinéraire
    Par bhrochdi dans le forum APIs Google
    Réponses: 8
    Dernier message: 24/11/2013, 14h27
  2. [Google Maps] Itinéraire de plusieurs points d'une bdd mysql
    Par nolookpass8 dans le forum APIs Google
    Réponses: 13
    Dernier message: 28/10/2013, 21h43
  3. Itinéraire de un point A à un point B
    Par maydenec dans le forum Android
    Réponses: 4
    Dernier message: 26/01/2011, 09h35
  4. [Mappy] Récupérer une liste de points sur un itinéraire
    Par nicolas.chevet dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 24/02/2010, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo