如何将gwt-openlayers地图导出为图像

时间:2018-12-05 09:50:40

标签: gwt-openlayers

我们有gwt Web应用程序,显示了地图,并通过gwt-openlayers实现。

我想实现一个功能,以将当前地图导出为图像(例如png)。

我从openlayers知道了这个例子,但是我很难用gwt完成它。

https://openlayers.org/en/latest/examples/export-map.html

我们将不胜感激

1 个答案:

答案 0 :(得分:0)

经过多次试验和错误,我发现此解决方案部分解决了我的问题: https://stackoverflow.com/a/25486443/6919820

但是,关闭打印对话框后,打印的版式仍保留为我以前的窗口中的某种覆盖层。因此,我的方法是创建一个新地图,并复制原始地图中的所有相关数据。然后打印新地图,然后销毁。

buttonPrint.addClickHandler(event -> {
    // mapPrintLayout contains my new MapWidget
    print(mapPrintLayout.getElement().getInnerHTML());

    mapPrintLayout.destroy(); 
});

public static final native void print(String html) /*-{
    top.consoleRef=$wnd.open('','_blank', "", false);
    top.consoleRef.document.write(html);
    top.consoleRef.print();
    top.consoleRef.close();
}-*/;

它有效,但是我不相信我的方法。也许有更好的方法可以做到这一点。