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 :

Affichage de plusieurs itinéraires [Google Maps]


Sujet :

APIs Google

  1. #1
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 70
    Points : 44
    Points
    44
    Par défaut Affichage de plusieurs itinéraires
    Bonjour,

    Voilà, j'ai des latitudes et longitudes enregistrées en base. Je fais une requête SQL pour sélectionner celles qui m'intéresse puis j'affiche mes marqueurs que je push ensuite dans mon tableau "markers". Jusque là tout va bien :cool:
    Par la suite, j'essaie d'afficher après un clic sur un bouton les itinéraires entre chacun de ces marqueurs et un autre point donné en dur. Le problème est qu'il ne m'affiche que le dernier itinéraire.
    J'ai essayé de mettre mon directionRender dans un tableau mais ça ne marche pas non plus... Voici mon code avec le tableau :

    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
     
    	$('#bottom #itin').click(function(){
    		var displays = [];
    		for(var i = 0 ; i < markers.length ; i++){
    			directionsService = new g.DirectionsService();
    			directionsDisplay = new g.DirectionsRenderer();
    			directionsDisplay.setMap(map);
     
    			displays.push(directionsDisplay);
     
    			directionsService.route({
    				origin: markers[i].getPosition(),
    				destination: new google.maps.LatLng(43.2769, -0.324427),
    				provideRouteAlternatives: true,
    				unitSystem: g.DirectionsUnitSystem.METRIC,
    				travelMode: g.DirectionsTravelMode.DRIVING
    			}, function(result, status){
    				if (status == g.DirectionsStatus.OK){
    					displays[i].setDirections(result);
    				} else {
    					alert('Le calcul d\'itinéraire a échoué.');
    				}
    			});
    		}
    	});
    Il me sort l'erreur :
    TypeError: 'undefined' is not an object (evaluating 'displays[i].setDirections')


    Si quelqu'un pouvait m'aider, je lui serais très reconnaissant

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    Bonjour,
    la question qui se pose est
    que vaut i lors de l'éxécution de la fonction ?
    la réponse est
    markers.length
    donc comme il n'existe pas de displays pour cette valeur , problème de scope donc.

    Pourquoi ne pas initialiser tes DirectionsRenderer lors de la réception de la réponse
    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
    $('#bottom #itin').click(function () {
      var displays = [];
      for (var i = 0; i < markers.length; i++) {
        directionsService = new g.DirectionsService();
    //    directionsDisplay = new g.DirectionsRenderer();
    //    directionsDisplay.setMap(map);
    //    displays.push(directionsDisplay);
     
        directionsService.route({
          origin: markers[i].getPosition(),
          destination: new google.maps.LatLng(43.2769, -0.324427),
          provideRouteAlternatives: true,
          unitSystem: g.DirectionsUnitSystem.METRIC,
          travelMode: g.DirectionsTravelMode.DRIVING
        }, function (result, status) {
     
          if (status == g.DirectionsStatus.OK) {
    //        displays[i].setDirections(result);
            var dDisplay = new g.DirectionsRenderer();
            dDisplay.setDirections( result);
            dDisplay.setMap( map);
            displays.push( dDisplay);
          } else {
            alert('Le calcul d\'itinéraire a échoué.');
          }
        });
      }
    });
    de plus as tu essayé de déclarer ton directionsService une seule fois en dehors de la boucle.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2011
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 70
    Points : 44
    Points
    44
    Par défaut
    Explication et solution claires, comme toujours ! Merci NoSmoking

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Affichage de plusieurs itinéraires
    bonjour
    j'ai le même problème que vous Kentin64 est vous pouvez m'aidez SVP j'arrive pas a le resoudre
    merci

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    Bonjour,
    je pense qu'il est préférable que tu ouvres une nouvelle discussion en précisant bien mieux que ce que tu ne viens de le faire ton problème.

    N'hésites pas à nous mettre un peu de code.

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

Discussions similaires

  1. [Google Maps] Affichage de plusieurs itinéraires google map
    Par BOUMAILI dans le forum APIs Google
    Réponses: 2
    Dernier message: 03/07/2012, 23h39
  2. affichage de plusieurs rectangles
    Par lechewal dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 02/05/2006, 19h52
  3. Réponses: 7
    Dernier message: 26/09/2005, 18h50
  4. Réponses: 2
    Dernier message: 09/10/2004, 12h35
  5. [DirectDraw7] Affichage de plusieurs image bmp
    Par SteelBox dans le forum DirectX
    Réponses: 3
    Dernier message: 24/04/2004, 20h00

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