如何将OPENLAYERS 3 postcompose方法转换为普通方法?

时间:2015-11-17 11:27:54

标签: openlayers-3

我试图根据包含纬度和经度的给定坐标数组设置一条线的动画,我想只调用一次我的函数,我的坐标名称是:replayData。

map.on('postcompose', function (event) {
    var vectorContext = event.vectorContext;
    var frameState = event.frameState;
    vectorContext.setFillStrokeStyle(null, animatedLineStroke);
    var features = lineVectorSource.getFeatures();
    for (var k = 0; k < features.length; k++) {
        var feature = features[k];
        if (!feature.get('finished')) {
            var coords = feature.getGeometry().getCoordinates();
            var elapsedTime = frameState.time - feature.get('start');
            var elapsedPoints = elapsedTime * pointsPerMs;
            if (elapsedPoints >= coords.length) {
                feature.set('finished', true);
            }
            var maxIndex = Math.min(elapsedPoints, coords.length);
            var currentLine = new ol.geom.LineString(coords.slice(0, maxIndex));
            if (feature.get('iValue') == undefined || feature.get('iValue') < k) {
                // drawMovingCarMarker(coords, k);
                feature.set('iValue', k)
            }
            vectorContext.drawLineStringGeometry(currentLine, feature);
        }
    }
    frameState.animate = true;
});

这个函数正在做的是首先从for循环中收集所有值,然后开始动画。因此,如果我得到5分,前两点之间的线将被绘制5次,然后是4,3,依此类推。 任何帮助都将受理。提前谢谢。

0 个答案:

没有答案