2014-02-11 68 views
3

我想導出一個2.13.1 openLayers地圖到一個畫布,但這樣做的方法似乎已經消失。導出地圖在openLayers

老方法將工作,如:

var exportMapControl = new OpenLayers.Control.ExportMap(); 
map.addControl(exportMapControl); 

var canvas = OpenLayers.Util.getElement("exportedImage"); 
exportMapControl.trigger(canvas); 

有誰知道這是如何工作的2.13.1?

由於提前,

+0

我面臨着同樣的問題...這不適用於我的代碼,我添加了'ExportMap.js'和'Grid.js',我只使用WMS圖層,但回答的解決方案對我不起作用... :( –

回答

0

我不會在這裏寫全功能(因爲它已經在兩個棧網站),但this solution using html2canvas可以導出一個dataURL您的OpenLayers 2地圖。

在我的應用程序中 - 然後我使用dataURL將地圖添加到使用jsPDF的pdf中。

在此解決方案中導出WMS,矢量和基礎圖層。

在OL3中似乎有更好的畫布支持,正如我的鏈接答案中提到的 - 我已經看到了OL3的Blob演示頗具說服力。

2

ExportMap控制實際上從來沒有正式的OpenLayers分佈的一部分(你可以檢查出the project on github和瀏覽歷史記錄確認)。上面的示例來自似乎是用戶提交的增強提議(demo here)的沙箱。

The source of this custom control is available HERE。 加載OL 2.13.1後只需導入它,它應該再次以OpenLayers.Control.ExportMap的形式提供。除非OL的其他部分取決於在此期間改變,否則它應該像以前一樣工作。