goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); goog.require('ol.layer.Tile'); goog.require('ol.source.BingMaps'); goog.require('ol.source.OSM'); var osm = new ol.layer.Tile({ source: new ol.source.OSM() }); var bing = new ol.layer.Tile({ source: new ol.source.BingMaps({ key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3', style: 'Aerial' }) }); var map = new ol.Map({ layers: [osm, bing], renderer: ol.RendererHint.CANVAS, target: 'map', view: new ol.View2D({ center: [0, 0], zoom: 2 }) }); var swipe = document.getElementById('swipe'); bing.on('precompose', function(event) { var ctx = event.getContext(); var width = ctx.canvas.width * (swipe.value / 100); ctx.save(); ctx.beginPath(); ctx.rect(width, 0, ctx.canvas.width - width, ctx.canvas.height); ctx.clip(); }); bing.on('postcompose', function(event) { var ctx = event.getContext(); ctx.restore(); }); swipe.addEventListener('change', function() { map.requestRenderFrame(); }, false);