Как экспортировать карту gwt-openlayers как изображение
У нас есть веб-приложение gwt, показывающее карту, реализованное с помощью gwt-openlayers.
Я хотел бы реализовать функцию для экспорта текущей карты в виде изображения (например, PNG).
Я знаю об этом примере от openlayers, но я изо всех сил пытаюсь сделать это с помощью gwt.
https://openlayers.org/en/latest/examples/export-map.html
Помощь будет оценена
1 ответ
После дополнительных проб и ошибок я нашел это решение, которое частично решает мою проблему: /questions/21023429/kak-napechatat-nekotoryie-elementyi-v-gwt/21023438#21023438
Тем не менее, после закрытия диалогового окна печати напечатанный макет остается наложенным на мое предыдущее окно. Поэтому мой подход заключался в создании новой карты и копировании всех соответствующих данных из исходной. Затем распечатайте новую карту и уничтожьте ее потом.
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();
}-*/;
Это работает, но меня не убеждает мой подход. Может быть, есть лучшие способы сделать это.