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时,什么都没有发生。