【发布时间】:2017-01-12 12:39:53
【问题描述】:
我在 Flask 应用程序中有一个 openlayer3 实现。
我正在展示一艘帆船的动画,并实现了一个功能来跟随船的路线。但是,如果我放大船,如果船开始航行时船正在航行的折线不在视线范围内,它将消失。有谁知道如何解决这个问题?
我创建了这个jsfiddle 来说明问题。单击跟随船检查按钮并放大,以便不显示整个多段线。启动动画并观察折线随着船的航行而消失。
我研究过使用 renderBuffer,但在我的例子中,我有一条由 190.000 个数据点组成的巨大折线,而且我不知道这条线的像素大小。
var vectorLayer1 = new ol.layer.Vector({
source: new ol.source.Vector({
features: [routeFeature1, geoMarker1, startMarker1, endMarker1],
renderBuffer: 10000000
}),
style: function(feature) {
// hide geoMarker if animation is active
if (animating1 && feature.get('type') === 'geoMarker') {
return null;
}
return styles1[feature.get('type')];
}
});
这并不能解决我的问题。
我正在使用下面的线来跟随船的路线,我想知道我是否可以在每次移动时“重绘”这条线:
map1.getView().setCenter(routeCoords1[index]);
【问题讨论】:
-
有趣的问题。看起来动画比重新绘制地图图层具有更高的优先级,因为如果您等待帆船完成它的旅程,那么不可见的线部分将完成绘制并出现..不知道如何解决这个问题
标签: javascript jquery html flask openlayers-3