我们有gwt Web应用程序,显示了地图,并通过gwt-openlayers实现。
我想实现一个功能,以将当前地图导出为图像(例如png)。
我从openlayers知道了这个例子,但是我很难用gwt完成它。
https://openlayers.org/en/latest/examples/export-map.html
我们将不胜感激
答案 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();
}-*/;
它有效,但是我不相信我的方法。也许有更好的方法可以做到这一点。