Openlayer3 - 避免折线在动画过程中消失

时间:2017-01-12 12:39:54

标签: javascript jquery html flask openlayers-3

我在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]);

1 个答案:

答案 0 :(得分:2)

问题似乎是这一行:map1.beforeRender(pan); 没有调用之前的问题,问题不会出现。请注意,不再使用ol.Map#beforeRenderol.animation#pan