我在一个角度应用程序中实现了 heremaps 并使用它来使用 wkhtmltopdf 打印 PDF,问题是我需要有一个可靠的事件来监听,以便通知 wkhtmltopdf 我的地图已完全加载并准备好打印。特别是在打印 PDF 时,某些图块要么未加载,要么仍处于模糊状态。
我试图收听该mapviewchangeend事件,但它不会在图块加载时引发。我也试过听render渲染引擎的事件,但是每次加载一个图块时都会抛出一个事件,我不知道我应该等待多少个图块
// add a listener on the map ready event
this.map.getEngine().addEventListener("render", (event: H.util.Event) => {
if (this.map.getEngine() === event.target) {
map.mapReadyAction();
}
});
Run Code Online (Sandbox Code Playgroud)
有没有一种可靠的方法可以知道我的地图图块何时已完全加载并准备好打印?
编辑:使用评论中链接的帖子,我找到了一种可靠地计算已加载图块数量的方法。不幸的是,我找不到确定我的地图需要加载的图块总数的方法(getTileNumber()在代码中)
this.nbLoadedTiles = 0;
this.map
.getBaseLayer()
.getProvider()
.addEventListener("update", () => {
this.nbLoadedTiles++;
console.log(`tile loaded : ${this.nbLoadedTiles}`);
if (this.nbLoadedTiles === this.getTileNumber()) {
console.log("All tiles loaded");
map.mapReadyAction();
this.nbLoadedTiles = 0;
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢 !