Partage
  • Partager sur Facebook
  • Partager sur Twitter

[API Google Map] Récupérer le temps d'un itinéraire

Distance facile, mais le temps...

Sujet résolu
    26 septembre 2010 à 14:36:46

    Bonjour les Zéros :)

    J'ai récemment découvert le tutoriel de aymensan sur Google Maps JavaScript API V3 et depuis, je test les différentes fonctions. Actuellement je suis coincé à un problème ...

    Comment récupérer la durée d'un itinéraire ?


    En cherchant sur le web, j'ai trouvé dans la doc de Google pour récupérer la distance (voir code ci-dessous) mais pas pour la durée...

    // La fonction 
    function computeTotalDistance(result) {
    	var total = 0;
    	var myroute = result.routes[0];
    	for (i = 0; i < myroute.legs.length; i++) {
    		total += myroute.legs[i].distance.value;
    	}
    	total = total / 1000.
    	document.getElementById("total").innerHTML = total + " km";
    }   
    
    google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
    	computeTotalDistance(directionsDisplay.directions);
    });
    


    Et pour afficher : <div id="total"></div>

    Voilà, merci de votre lecture,
    _dark mort_

    PS : J'ai un autre soucis mais non technique avec les coordonnées des régions : Coordonnées d'une région...
    • Partager sur Facebook
    • Partager sur Twitter
      27 septembre 2010 à 3:51:44

      Apparemment, tout comme tu as utilisé distance.value pour avoir la distance, tu peux utiliser duration.value pour avoir la durée.

      La doc précise que la valeur peut être undefined .

      http://code.google.com/apis/maps/docum [...] DirectionsLeg
      • Partager sur Facebook
      • Partager sur Twitter
        27 septembre 2010 à 17:51:38

        Merci beaucoup ! C'est exactement ça. ;)( :-° j'ai mal cherché...)

        Sujet résolu ! :D


        Cordialement
        _dark mort_
        • Partager sur Facebook
        • Partager sur Twitter
          11 juin 2013 à 9:55:28

          Salut Morg@n,

          Je suis en train d'essayer de récupérer ton code, pour l'intégrer dans le mien.

          Je n'arrive pas à faire apparaître le total des km à parcourir.

          Mon code :

          var map;
          var panel;
          var initialize;
          var calculate;
          var direction;
          
          initialize = function(){
            var latLng = new google.maps.LatLng(48.454366, -2.047327); // Correspond au coordonnées de Dinan
            var myOptions = {
              zoom      : 14, // Zoom par défaut
              center    : latLng, // Coordonnées de départ de la carte de type latLng 
              mapTypeId : google.maps.MapTypeId.TERRAIN, // Type de carte, différentes valeurs possible HYBRID, ROADMAP, SATELLITE, TERRAIN
              maxZoom   : 20
            };
            
            map      = new google.maps.Map(document.getElementById('map'), myOptions);
            panel    = document.getElementById('panel');
            
            var marker = new google.maps.Marker({
              position : latLng,
              map      : map,
              title    : "Dinan"
              //icon     : "marker_lille.gif" // Chemin de l'image du marqueur pour surcharger celui par défaut
            });
            
            var contentMarker = [
                '<div id="containerTabs">',
                '<div id="tabs">',
                '<ul>',
                  '<li><a href="#tab-1"><span>Dinan</span></a></li>',
                  
                '</ul>',
                '<div id="tab-1">',
                  '<h3>Départ du taxi</h3>',
                '</div>',
                
                '</div>',
                '</div>'
            ].join('');
          
            var infoWindow = new google.maps.InfoWindow({
              content  : contentMarker,
              position : latLng
            });
            
            google.maps.event.addListener(marker, 'click', function() {
              infoWindow.open(map,marker);
            });
            
            google.maps.event.addListener(infoWindow, 'domready', function(){ // infoWindow est biensûr notre info-bulle
              jQuery("#tabs").tabs();
            });
            
            
            direction = new google.maps.DirectionsRenderer({
              map   : map,
              panel : panel // Dom element pour afficher les instructions d'itinéraire
            });
          
          };
          
          
          calculate = function(){
          	
              origin      = new google.maps.LatLng(48.45416, -2.048166); // Le point départ (Dinan)	
              destination = document.getElementById('destination').value; // Le point d'arrivé
          	waypts		=[];
          	etape 		= document.getElementById('waypts').value; // Emplacement client
                  waypts.push({
                      location:etape,
                      stopover:true});
          			
              if(origin && destination){
                  var request = {
                      origin      : origin,			
                      destination : destination,
          			waypoints	: waypts,
          			optimizeWaypoints: true,
                      travelMode  : google.maps.DirectionsTravelMode.DRIVING // Mode de conduite
                  }
                  var directionsService = new google.maps.DirectionsService(); // Service de calcul d'itinéraire
                  directionsService.route(request, function(response, status){ // Envoie de la requête pour calculer le parcours
                      if(status == google.maps.DirectionsStatus.OK){
                          direction.setDirections(response); // Trace l'itinéraire sur la carte et les différentes étapes du parcours
                      }
                  });
              }
          };
          
          initialize();

          Je ne vois pas ou intégrer ton code indiqué plus haut.
          Je vais avoir besoin de récup la valeur du nombre de km parcouru.

          Pourrais tu m'éclairer un peu?

          -
          Edité par fredericcordier8 11 juin 2013 à 9:57:29

          • Partager sur Facebook
          • Partager sur Twitter

          [API Google Map] Récupérer le temps d'un itinéraire

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown