我负责AngularJS应用程序的开发,该应用程序旨在跟踪所选驱动程序所做的路线。 我从我的应用程序后端集成的代理脚本获取路由,并使用this插件渲染地图和路线(使用折线对象制作)。
一切正常,但是我需要延迟折线渲染,也就是说,对于每条路线,我都不希望路线被立即追踪,而是每3秒一条折线,这样就可以模拟一个点移动在地图上。
我尝试了这个(在success
承诺的$http.get
方法内):
var fn = function() {
//alert(xpath);
$scope.polylines[0].path.push(xpath);
}
for (var i = 0; i < $scope.paths.length; i++) {
var p = $scope.paths[i];
for (var j = 0; j < p.path.length; j++) {
xpath = p.path[j];
//$scope.polylines[0].path.push(xpath);
$timeout(fn, 1000);
}
}
其中$scope.paths
是纬度,经度对象的集合。
以这种方式使用$timeout
指令不起作用,如果我对超时行进行注释并取消注释其上方的行,则可以正常工作(尽管所有路由都会立即呈现)。
任何帮助表示赞赏。
答案 0 :(得分:0)
var pushPath = function (path) {
return function () {
$scope.polylines[0].path.push(path);
console.debug('pushed ' + path);
};
};
for (var i = 0; i < $scope.paths.length; i++) {
var p = $scope.paths[i];
for (var j = 0; j < p.path.length; j++) {
xpath = p.path[j];
$timeout(pushPath(xpath), 1000);
}
}