Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Maps API v3方向.route()请求_Javascript_Google Maps - Fatal编程技术网

Javascript Google Maps API v3方向.route()请求

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

我一直在转换到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(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()