From c836c8d9c4b32cdb2ff18d211414331e2bed5cc7 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 21 Jan 2013 15:08:15 +0100 Subject: [PATCH 1/3] Add ol.Map.getRenderer function --- src/ol/map.js | 8 ++++++++ 1 file changed, 8 insertions(+) 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. */ From 2f2ea373ca0624c978223b17f04c434f02ab79a3 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 21 Jan 2013 15:18:18 +0100 Subject: [PATCH 2/3] Add ol.renderer.Map.getCanvas function. Only valid with the canvas and webgl renderers --- src/ol/renderer/canvas/canvasmaprenderer.js | 8 ++++++++ src/ol/renderer/maprenderer.js | 6 ++++++ src/ol/renderer/webgl/webglmaprenderer.js | 8 ++++++++ 3 files changed, 22 insertions(+) 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 14b3db6d9f..0e8f876bb9 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -148,6 +148,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. */ From 8cbe0fbbbb4ed9c21e6c87ccd9ad1325e75ec6e0 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 21 Jan 2013 15:24:45 +0100 Subject: [PATCH 3/3] Export canvas map as jpeg image --- examples/two-layers.html | 2 +- examples/two-layers.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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(); +});