Angular谷歌地图 - 超时和折线渲染

时间:2014-12-28 14:54:06

标签: javascript angularjs google-maps angular-google-maps

我负责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指令不起作用,如果我对超时行进行注释并取消注释其上方的行,则可以正常工作(尽管所有路由都会立即呈现)。 任何帮助表示赞赏。

1 个答案:

答案 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);
    }
}

http://plnkr.co/edit/Rx01zw7YuM64QF90puqR?p=preview