Openlayer3 - 避免折线在动画过程中消失
Openlayer3 - Avoid polyline from disappearing during animation
我在 Flask 应用程序中有一个 openlayer3 实现。
我正在展示一艘帆船的动画,并实现了一个功能来跟随船的路线。但是,如果我放大这艘船,如果在船开始航行时它不在视线范围内,则该船航行的多段线将消失。有谁知道如何解决这个问题?
我创建了这个 jsfiddle 来说明问题。单击 follow ship 检查按钮并放大,这样就不会显示整条折线。启动动画并观看多段线随着船的航行而消失。
我研究过使用 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')];
}
});
但这并不能解决我的问题。
我正在使用下面的线跟随船的路线,我想知道我是否可以 "redraw" 这条线在每一次移动中:
map1.getView().setCenter(routeCoords1[index]);
问题似乎出在这一行:map1.beforeRender(pan);
如果不调用 beforeRender,问题就不会出现。请注意 ol.Map#beforeRender 以及 ol.animation#pan
.
已弃用
我在 Flask 应用程序中有一个 openlayer3 实现。
我正在展示一艘帆船的动画,并实现了一个功能来跟随船的路线。但是,如果我放大这艘船,如果在船开始航行时它不在视线范围内,则该船航行的多段线将消失。有谁知道如何解决这个问题?
我创建了这个 jsfiddle 来说明问题。单击 follow ship 检查按钮并放大,这样就不会显示整条折线。启动动画并观看多段线随着船的航行而消失。
我研究过使用 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')];
}
});
但这并不能解决我的问题。
我正在使用下面的线跟随船的路线,我想知道我是否可以 "redraw" 这条线在每一次移动中:
map1.getView().setCenter(routeCoords1[index]);
问题似乎出在这一行:map1.beforeRender(pan);
如果不调用 beforeRender,问题就不会出现。请注意 ol.Map#beforeRender 以及 ol.animation#pan
.