Как экспортировать карту 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();
}-*/;

Это работает, но меня не убеждает мой подход. Может быть, есть лучшие способы сделать это.

Другие вопросы по тегам