Включить скриншот открытого слоя в снимок экрана всей страницы - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть div - пусть назовем его «глобальным», - что внутри него у меня есть заголовок и две карты openlayer.
Я могу получить снимок глобального с помощью html2canvs следующим образом:

    html2canvas(globalElement).then((canvas) => {
      this.screenShot(canvas.toDataURL());
    });

Но открытые слои на снимке выглядели как буксирный черный div, как это: image

Я могу получить вид открытого слоя отдельно по этому коду:

     this.map.once('rendercomplete', function(event) {
          const canvas = event.context.canvas;
          console.log(canvas.toDataURL()); // the open layer screen shot
       });
     this.map.renderSync();

Как я могу получитьвсе это вместе как один скриншот?

----- edit ----

С помощью @Mike я использую domtoImage, как в этом примере:

     this.map.once('rendercomplete', function(event) {
         domtoimage.toPng(globalElement)
        .then((dataURL) => {
            console.log(dataURL);
        });
       });
     this.map.renderSync();

и я могу получить изображение всего div с картой открытого слоя.Возник новый вопрос: мат-иконки из углового материала не отображались должным образом с помощью domtoimage, они отображают имя значка, а не значок.Как я могу это исправить?

...