我构建了一个非常简单的应用程序,显示一些路线和距离。 here 它工作正常......但如果我尝试使路线可拖动,我会收到错误: “TypeError:b.Zb未定义”(不在我的js文件中......我猜是在GM文件中。)
这是我更改的唯一几行:
var rendererOptions = {
draggable: true,
suppressMarkers: true
};
directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
我关注this example ...运行良好。
所以我想我在其他地方做错了什么。问题是,如果不更改此选项,我所做的错误不会导致任何错误。 任何想法 ? 谢谢
最佳答案
该错误是由这一行强制的(activMap.js,第326行):
directionsDisplay.setDirections({routes: []});
文档有点不完整,因为根据文档,参数传递给 setDirections
只能包含 routes
-array(所以这一行应该是正确的)
但看起来,在内部,至少当draggable
时-option 已设置,它还需要另一个属性(其中包含已传递给 directionsService.route()
的参数)。
此属性的名称(在本例中为 Zb
)不一致,因此无法通过上述行可靠地传递此属性。
可能的解决方法:
删除该行,并初始设置为calcRoute()
map
-directionsDisplay
的属性至null
(隐藏以前绘制的路线)。
当 route
-功能已成功设置 map
-属性返回map
调用directionsDisplay.setDirections()
后
注意:你应该稍微清理一下你的代码,你已经两次包含了maps-API并且创建了很多无用的DirectionsService
实例。和DirectionsRenderer
关于javascript - 谷歌地图 : Adding {draggable : true} to rendererOptions causes "TypeError: b.Zb is undefined" error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366010/