OL 5:快速更改图层时的平滑过渡

时间:2018-10-20 18:12:01

标签: openlayers openlayers-5

我有一些要显示为图像层的png(透明雷达图像)。这样做没问题........我加载了一个图像,然后删除了它,加载了一个新的图像,然后将其删除等等。 但是通过这种方式,过渡不会像我希望的那样平滑(更像是闪烁的图像)。如何使这些平滑?

var center = ol.proj.transform([5.2, 52.443], 'EPSG:4326', 'EPSG:3857');

var map = new ol.Map({
        target: 'map',
        controls: ol.control.defaults({
            attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
                collapsible: true
            })
        }),
        layers: [
            new ol.layer.Tile({
                source: new ol.source.OSM({
                    url: 'http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png'
                })
            })

        ],
        view: new ol.View({
            center: center,
            zoom: 6
        })
    });

var url = url of transparent radarimage (http://......)
var imageBounds = [0.813 , 50.520 , 10.996, 54.295 ];

var imageLayer = new ol.layer.Image({
    opacity: opacity,
    source: new ol.source.ImageStatic({
        url: url,
        imageSize: [1315, 799],
        projection: map.getView().getProjection(),
        imageExtent: ol.extent.applyTransform(imageBounds, ol.proj.getTransform("EPSG:4326", "EPSG:3857"))
    })
});

map.addLayer(imageLayer); // to add imageLayer to the map.

map.removeLayer(imageLayer); // to remove imageLayer from the map.

编辑2:根据建议(thx!),尝试使用以下命令更新源:

s = new ol.source.Image({
    source: new ol.source.ImageStatic({
        url: url
    })
});

l=map.getLayers().getArray()[1]; // 1 = Radar layer

l.setSource(s);

图层未刷新....

0 个答案:

没有答案