Javascript 在google maps apv v3的另一个函数中调用setinterval函数
我写这段代码是为了在一段时间间隔后调用函数,但函数没有执行它的功能。当我正常调用函数pus()时,它正在运行,但使用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
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);