2010-11-11 4 views
1

Я перешел на версию 3 API карт Google и продолжаю получать сообщение об ошибке, когда я вызываю directionService.route(). Карта отлично выглядит, но в Firebug я вижу, что Google выдает ошибку «a не определено (строка main.js 16)».Google Maps API v3 direction.route() request

Вот соответствующий код:

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}}); 

// определить происхождение, место назначения, и т.д. ...

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); 
} 
}); 

В документации API, Google говорит, что только происхождение, место назначения, и travelMode являются требуется в запросе направления. Кто-нибудь испытал эту проблему?

ответ

0

Я использовал эту ошибку, используя оверлеи, которых нет на карте. Или что-то случилось с инициализацией. Проверьте свои инициализации, возможно, вы что-то пропустили.

+0

Хорошо, спасибо за подсказку, я понял это. То, что сработало было, вместо вызова пользовательского self.refreshMap() в функции обратного вызова для DirectionsService.route(), я добавил слушатель направление измененному событию directionRenderer по: – CZdeveloper

+0

слушателю я добавил был: \t \t \t \t Яндекс.Карты .event.addListener (self.dirRenderer, 'directions_changed', function() {\t \t google.maps.event.trigger (this.getMap(), 'resize');}); затем я удалил self.refreshMap() из обратного вызова route() – CZdeveloper