我有一个坐标列表,我希望我的代码可以平移。我可以放置view.animate并执行一次以从当前中心平移到第一个坐标,但不保持循环浏览列表。有任何想法吗?我从这个https://openlayers.org/en/latest/examples/animation.html那里得到了这个想法。
var坐标= [伦敦,莫斯科,伊斯坦布尔,罗马,伯尔尼]; (他们有坐标)
var view = new ol.View({
center: istanbul,
zoom: 4
})
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})],
loadTilesWhileAnimating: true,
view: view
});
coordinates.forEach(function(element) {
setTimeout(view.animate({
center: element,
duration: 2000,
}), 10000);
});
答案 0 :(得分:0)
您有一个基本的错误,即setTimeout
将被快速连续地重复调用,而每一个在10000毫秒的延迟后都会调用view.animate
-地图将变得充满动画请求。
这是一个使用setInterval
的有效示例,可确保panToNextlocation
每3000毫秒仅调用一次