Openlayers 3 如何在OpenLayers 3地图中设置两点之间的线字符串动画?

Openlayers 3 如何在OpenLayers 3地图中设置两点之间的线字符串动画?,openlayers-3,Openlayers 3,我想从坐标数组中的多个点之间画一条线。 我的代码看起来像: <button onclick="drawAnimatedLine(new ol.geom.Point(6210355.674114,2592743.9994331785), new ol.geom.Point(8176927.537835015,2255198.08252584), 50, 2000);">Draw Line</button> function drawAnimatedLine(startP

我想从坐标数组中的多个点之间画一条线。 我的代码看起来像:

<button onclick="drawAnimatedLine(new ol.geom.Point(6210355.674114,2592743.9994331785), new ol.geom.Point(8176927.537835015,2255198.08252584), 50, 2000);">Draw Line</button>
 function drawAnimatedLine(startPt, endPt, steps, time, fn) {
            var style = {
                strokeColor: "#0500bd",
                strokeWidth: 15,
                strokeOpacity: 0.5,
                strokeColor: '#0000ff'
            };
            var directionX = (endPt.x - startPt.x) / steps;
            var directionY = (endPt.y - startPt.y) / steps;
            var i = 0;
            var prevLayer;
            var lineDraw = setInterval(function () {
                console.log("Inside Animate Line");
                if (i > steps) {
                    clearInterval(lineDraw);
                    if (fn)
                        fn();
                    return;
                }
                var newEndPt = new ol.geom.Point(startPt.x + i * directionX, startPt.y + i * directionY);
                var line = new ol.geom.LineString([startPt, newEndPt]);
                var fea = new ol.Feature({
                    geometry:line,
                    style: style
                });
                var vec = new ol.layer.Vector();
                vec.addFeatures([fea]);
                map.addLayer(vec);
                if(prevLayer)
                {
                    map.removeLayer(prevLayer);
                }
                prevLayer = vec;
                i++;
            }, time / steps);
        }

注意:坐标将是动态的,但对于测试,我已经在点击按钮时传递了样本数据。请务必尽快解决此问题。

您的问题是什么?你的代码出了什么问题?你必须尽快解决这个问题possible@JonatasWalker我的问题是我不能画任何线…地图上没有可见的线。有几个错误。我给你的建议是:尽可能简单地开始,删除所有
setInterval
内容,只需用按钮在地图上添加一个
lineString
。@JonatasWalker是的,这是在画一条线。但是当我使用setInterval时,什么都没有发生。你的问题是什么?你的代码出了什么问题?你必须尽快解决这个问题possible@JonatasWalker我的问题是我不能画任何线…地图上没有可见的线。有几个错误。我给你的建议是:尽可能简单地开始,删除所有
setInterval
的内容,只需用按钮在地图上添加一个
lineString
。@JonatasWalker是的,它正在生成一条线。但是当我使用setInterval时,什么都没有发生。