Use prerender and postrender events on Vector Clipping Layer example for better readability

This commit is contained in:
Simon Daron
2020-04-25 06:53:58 +02:00
parent 937d953fbd
commit 71f056c75c

View File

@@ -13,25 +13,22 @@ const base = new TileLayer({
});
const clipLayer = new VectorLayer({
style: null,
style: new Style({
fill: new Fill({
color: 'black',
}),
}),
source: new VectorSource({
url: './data/geojson/switzerland.geojson',
format: new GeoJSON(),
}),
});
const style = new Style({
fill: new Fill({
color: 'black',
}),
clipLayer.on('prerender', function (e) {
e.context.globalCompositeOperation = 'destination-in';
});
base.on('postrender', function (e) {
e.context.globalCompositeOperation = 'destination-in';
const vectorContext = getVectorContext(e);
clipLayer.getSource().forEachFeature(function (feature) {
vectorContext.drawFeature(feature, style);
});
clipLayer.on('postrender', function (e) {
e.context.globalCompositeOperation = 'source-over';
});