我的项目遇到了一个非常奇怪的错误。我通常使用版本标志“3”,但今天我开始出现错误,回滚到“3.8”解决了这个问题。
在我的路由文件的标题中,我有几个变量,如下所示:
var SERVICE = new google.maps.DirectionsService(),
SERVICE_OPTIONS = {
"avoidTolls": false,
"avoidHighways": false,
"optimizeWaypoints": false,
"provideRouteAlternatives": true,
"unitSystem": google.maps.DirectionsUnitSystem.METRIC,
"travelMode": google.maps.DirectionsTravelMode.DRIVING
};
var RENDERER = new google.maps.DirectionsRenderer(),
RENDERER_OPTIONS = {
"draggable": true,
"preserveViewport": false,
"suppressMarkers": false,//true,
"suppressPolylines": false,
"suppressInfoWindows": true,
"polylineOptions": {
"strokeColor": "#9900ff",
"strokeOpacity": 0.5,
"strokeWeight": 4
}
};
在接近底部的地方,我有一种方法可以
function route(zoomToResults,mode) {
RENDERER_OPTIONS.preserveViewport = !zoomToResults;
RENDERER.setOptions(RENDERER_OPTIONS); // error is thrown here
/* more code, and then */
SERVICE.route(SERVICE_OPTIONS,parseRouteResults);
};
我没有更改代码,我只是注意到现在在接收路由结果之前尝试使用 RENDERER.setOptions() 时出现错误。我得到的错误是Uncaught TypeError: Cannot read property 'travelMode' of undefined
,并且在 3.8 中没有抛出。
这是谷歌 API 的一个错误,还是他们在内部实现代码的方式发生了变化,而没有考虑到这个异常?