diff --git a/examples/two-layers.html b/examples/two-layers.html index 4d7ac617ce..3e23234af5 100644 --- a/examples/two-layers.html +++ b/examples/two-layers.html @@ -21,7 +21,7 @@ DOM WebGL - Canvas + Canvas export map as png
diff --git a/examples/two-layers.js b/examples/two-layers.js index 4817a59a15..9d8b66ec71 100644 --- a/examples/two-layers.js +++ b/examples/two-layers.js @@ -48,3 +48,7 @@ var canvasMap = new ol.Map({ }); canvasMap.bindTo('layers', webglMap); canvasMap.bindTo('view', webglMap); + +goog.events.listen(goog.dom.getElement('canvas-export'), 'click', function(e) { + e.target.href = canvasMap.getRenderer().getCanvas().toDataURL(); +}); diff --git a/src/ol/map.js b/src/ol/map.js index 6ab92eb8b8..8c222f40df 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -345,6 +345,14 @@ goog.exportProperty( ol.Map.prototype.getBackgroundColor); +/** + * @return {ol.renderer.Map} Renderer. + */ +ol.Map.prototype.getRenderer = function() { + return this.renderer_; +}; + + /** * @return {Element} Container. */ diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index b664dc977a..4b253c41d4 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -67,6 +67,14 @@ ol.renderer.canvas.Map.prototype.createLayerRenderer = function(layer) { }; +/** + * @inheritDoc + */ +ol.renderer.canvas.Map.prototype.getCanvas = function() { + return this.canvas_; +}; + + /** * @inheritDoc */ diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index 9553523759..bc4e8c520c 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -146,6 +146,12 @@ ol.renderer.Map.prototype.disposeInternal = function() { }; +/** + * @return {Element} Canvas. + */ +ol.renderer.Map.prototype.getCanvas = goog.functions.NULL; + + /** * @param {ol.layer.Layer} layer Layer. * @protected diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index c334e59b80..211c6bb25c 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -294,6 +294,14 @@ ol.renderer.webgl.Map.prototype.disposeInternal = function() { }; +/** + * @inheritDoc + */ +ol.renderer.webgl.Map.prototype.getCanvas = function() { + return this.canvas_; +}; + + /** * @return {WebGLRenderingContext} GL. */