我正在尝试将2.13.1 openLayers地图导出到画布中,但这样做的方法似乎已经消失了。
旧方法的工作原理如下:
var exportMapControl = new OpenLayers.Control.ExportMap();
map.addControl(exportMapControl);
var canvas = OpenLayers.Util.getElement("exportedImage");
exportMapControl.trigger(canvas);
有谁知道这对2.13.1有用吗?
提前致谢,
答案 0 :(得分:2)
ExportMap
控件实际上从未成为官方OpenLayers发行版的一部分(您可以通过签出the project on github并浏览历史记录来确认)。上面的示例来自沙盒,它似乎是用户提交的增强建议(demo here)。
source of this custom control is available HERE。
只需在加载OL 2.13.1后导入它,它就应该再次以OpenLayers.Control.ExportMap
的形式提供。除非OL的某些其他部分依赖于同时改变,否则它应该像以前一样工作。
答案 1 :(得分:0)
我不会在这里编写整个函数(因为它已经在两个堆栈站点上),但this solution using html2canvas允许您为 OpenLayers 2 地图。
在我的应用中 - 然后我使用dataURL使用jsPDF将地图添加到pdf。
WMS,矢量和基础图层在此解决方案中导出。
在OL3中似乎有更好的画布支持,正如我在链接的答案中所提到的那样 - 我已经看到了一个非常有说服力的OL3Blob演示。