我有函数在执行时会从一个值数组在地图上绘制路线。我正在使用谷歌地图 * 方向渲染 *。从我所看到的研究中,为了在地图上呈现多条路线,我需要为阵列中的每条路线创建一个路线渲染。JavaScript动态变量命名
我想创建一个数组中的每个路由的方向渲染,所以我决定用索引'i'连接变量的名称。这不起作用。
我创建访问该阵列时,锅点我得到一个错误的路线渲染对象作为数组然而 - 类型错误:不能转换未定义到对象为DirectionsService [I] =新google.maps。为DirectionsService();
如果我创建单独的方向渲染例如, DirectionsRender0,DirectionsRender1,DirectionsRender2 ...这工作正常,但会有一个实例,我不知道有多少方向渲染会有。
下我的代码示例:
function plotRoutes(){
var directionsDisplay = new Array();
for (var i=0; i< startLoc.length; i++){
var rendererOptions = {
map: map,
preserveViewport:true
}
directionsService[i] = new google.maps.DirectionsService();
var travelMode = google.maps.DirectionsTravelMode.DRIVING;
var request = {
origin: startLoc[i],
destination: endLoc[i],
travelMode: travelMode
};
directionsDisplay[i] = new google.maps.DirectionsRenderer(rendererOptions);
directionsDisplay[i].setMap(map);
directionsService.route(request, function(response, status) {
//console.log(response);
if (status == google.maps.DirectionsStatus.OK){
console.log(response);
directionsDisplay[i].setDirections(response);
}
});
}
我仍然收到错误 TypeError:无法将undefined转换为对象 [Break On This Error] directionsService [i] = new google.maps.DirectionsService(); – devdar
@dev_darin你忘了宣布“directionsService”了吗?您发布的代码中没有声明。 – Pointy
对不起,我的错误,我有方向服务[我]而不是只是directionsService不需要调整方向服务的索引。感谢您的帮助和很好的回答。 – devdar