Javascript Google Maps API v3方向.route()请求
我一直在转换到GoogleMapsAPI的第3版,在调用directionsService.route()时不断返回一个错误。地图渲染得很好,但在Firebug中,我看到google抛出了错误“a未定义(main.js第16行)” 以下是相关代码:Javascript Google Maps API v3方向.route()请求,javascript,google-maps,Javascript,Google Maps,我一直在转换到GoogleMapsAPI的第3版,在调用directionsService.route()时不断返回一个错误。地图渲染得很好,但在Firebug中,我看到google抛出了错误“a未定义(main.js第16行)” 以下是相关代码: self.gmap = new google.maps.Map(document.getElementById(id),mapOpts); self.dirService = new google.maps.DirectionsService(se
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文档中,谷歌表示,在一个方向请求中只需要起点、目的地和旅行模式。有人遇到过这个问题吗?我过去常常使用地图上不存在的覆盖图来得到这个错误。或者初始化出了问题。
检查您的初始化,您可能遗漏了一些内容。好的,谢谢您的提示,我找到了答案。工作原理是,我没有在DirectionService.route()的回调中调用自定义self.refreshMap(),而是向directionRenderer的方向更改事件添加了一个侦听器:我添加的侦听器是:google.maps.event.addListener(self.dirRenderer,'directions_changed',function(){google.maps.event.trigger(this.getMap(),'resize');});然后我从route()回调中删除了self.refreshMap()