2010-11-11 155 views
1

我已經轉換到Google Maps API的第3版,並且在我調用directionsService.route()時不斷收到錯誤。地圖呈現很好,但在Firebug中,我發現google會拋出錯誤「a is undefined(main.js line 16)」。Google Maps API v3 directions.route()請求

下面是相關代碼:

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文檔,谷歌表示,只有出發地,目的地和travelMode是在方向請求中需要。有沒有人遇到過這個問題?

回答

0

我以前使用覆蓋圖時沒有出現在Map上的錯誤。或者初始化出了問題。 檢查你的初始化,你可能錯過了一些東西。

+0

好的,謝謝你的提示,我明白了。什麼是工作,而不是調用的回調DirectionsService.route()自定義self.refreshMap(),我添加了一個監聽器directionRenderer的方向改變的事件: – CZdeveloper 2010-11-12 19:09:56

+0

我添加了監聽器: \t \t \t \t google.maps .event.addListener(self.dirRenderer,'directions_changed',function(){\t \t google.maps.event.trigger(this.getMap(),'resize');}); 然後我從路由()回調中刪除了self.refreshMap() – CZdeveloper 2010-11-12 19:11:42