Javascript 在google maps apv v3的另一个函数中调用setinterval函数

Javascript 在google maps apv v3的另一个函数中调用setinterval函数,javascript,google-maps-api-3,setinterval,Javascript,Google Maps Api 3,Setinterval,我写这段代码是为了在一段时间间隔后调用函数,但函数没有执行它的功能。当我正常调用函数pus()时,它正在运行,但使用setInterval时它不工作。请给出它的解决方案 var ltnlg = null; var flightPlanCoordinates = []; var nl2 = 10.9646; var ng2 = 72.8787; var lt2, ln2; var ltnlg = null; function lin() { flightPla

我写这段代码是为了在一段时间间隔后调用函数,但函数没有执行它的功能。当我正常调用函数pus()时,它正在运行,但使用setInterval时它不工作。请给出它的解决方案

 var ltnlg = null;
 var flightPlanCoordinates = [];
 var nl2 = 10.9646;
 var ng2 = 72.8787;
 var lt2, ln2;
 var ltnlg = null;

 function lin() {
           flightPlanCoordinates = [
     new google.maps.LatLng(29.0167, 77.3833),
     new google.maps.LatLng(21.7679, 78.8718),
     new google.maps.LatLng(18.9647, 72.8258)
     ];

          var flightPath = new google.maps.Polyline({
               path: flightPlanCoordinates,
               strokeColor: "#FF0000",
               strokeOpacity: 1.0,
               strokeWeight: 2
               });

           flightPath.setMap(map);
           pl = new google.maps.Polyline();
           //  window.setInterval("pus()", 10000);
          pus();

           }
       }

       function pus() {



           ltnlg = new google.maps.LatLng(nl2, ng2);
           flightPlanCoordinates.push(ltnlg);
           lt2 = nl2;
            n12 = lt2 + 0.0660;
          ln2 = ng2;
          ng2 = ln2 + 0.0660;

       }   

永远不要将回调作为字符串传递

window.setInterval(pus, 10000);
或者如果你想传递一些参数

window.setInterval(function() {
    pus(a, b, c);
}, 10000);

这里的问题不应该是“为什么setInterval不起作用”,而应该是“为什么它在函数中起作用”,因为它不应该起作用

我猜多边形的绘制是一个异步过程,当您从函数中调用
pus()
时,它还没有完成,这就是为什么对
flightPlanCoordinates
所做的更改仍然会产生影响的原因

但将修改后的路径应用于多段线的正确方法是调用
pus()

(注意:您必须使
flightPath
global才能从
lin()
)之外访问它。

window.setInterval(pus,10000);
flightPath.setPath(flightPlanCoordinates);