我有函数在执行时会根据一组值在地图上绘制路线。我正在使用谷歌地图*方向渲染*。根据我所见的研究,要在地图上渲染多条路线,我需要为数组中的每条路线创建一个方向渲染。
我正在尝试为数组中的每条路线创建一个方向渲染,所以我决定将变量的名称与索引“i”连接起来。这不起作用。
我将Directions Render对象创建为一个数组,但是在访问数组以填充点时出现错误 - TypeError: can't convert undefined to object DirectionsService[i] = new 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);
            }
        });
    }