2010-11-11 6 views
1

Je me suis converti à la version 3 de l'API Google Maps et je reçois une erreur lorsque j'appelle directionsService.route(). La carte rend très bien, mais dans Firebug je vois que google lance l'erreur "a is undefined (main.js line 16)".API Google Maps v3 directions.route() demande

Voici le code correspondant:

self.gmap = new google.maps.Map(document.getElementById(id),mapOpts); 

self.dirService = new google.maps.DirectionsService(self.gmap); 

self.dirRenderer = new google.maps.DirectionsRenderer({ 
       draggable: false, 
       map: self.gmap, 
       markerOptions: {clickable: false}}); 

// définir l'origine, la destination, etc ...

self.dirService.route({ 
'destination' : destination, 
'origin' : origin, 
'travelMode' : google.maps.DirectionsTravelMode.DRIVING 
},function(result,status){ 
if(status == google.maps.DirectionsStatus.OK){ 
    self.dirRenderer.setDirections(result); 
    self.refreshMap(); 
} else { 
    alert(self.ERR_MapRoute); 
} 
}); 

Sur la documentation de l'API, Google dit que seule origine, la destination et sont travelMode requis dans une demande de directions. Quelqu'un a-t-il eu ce problème?

Répondre

0

J'avais l'habitude d'obtenir cette erreur en utilisant des recouvrements qui ne sont pas présents sur la carte. Ou quelque chose s'est mal passé avec l'initialisation. Vérifiez vos initialisations, vous avez peut-être manqué quelque chose.

+0

Ok, merci pour le conseil, je l'ai compris. Ce qui a fonctionné était, au lieu d'appeler le self.refreshMap personnalisé() dans la fonction de rappel pour DirectionsService.route(), j'ai ajouté un écouteur à la direction de l'événement a changé directionRenderer: – CZdeveloper

+0

l'auditeur j'ai ajouté était: \t \t \t \t google.maps .event.addListener (self.dirRenderer, 'directions_changed', function() {\t \t google.maps.event.trigger (this.getMap(), 'redimensionner');}); puis j'ai retiré le self.refreshMap() du callback route() – CZdeveloper

Questions connexes