我可以将 map 保存为 PNG 图像,但如何将比例线控件添加到此 Canvas 上?
// export png
document.getElementById('export-png').addEventListener('click', function() {
map.once('postcompose', function(event) {
var canvasElement = event.context.canvas;
var MIME_TYPE = "image/png";
var imgURL = canvasElement.toDataURL(MIME_TYPE);
var dlLink = document.createElement('a');
dlLink.download = "carte"; //fileName;
dlLink.href = imgURL;
dlLink.dataset.downloadurl = [MIME_TYPE, dlLink.download, dlLink.href].join(':');
document.body.appendChild(dlLink);
dlLink.click();
document.body.removeChild(dlLink);
});
map.renderSync();
});
最佳答案
请注意,在下一个版本中https://github.com/openlayers/openlayers/blob/master/changelog/upgrade-notes.md OpenLayers 将从所有图层使用单个 Canvas 更改为每个图层使用一个 Canvas ,这与保存完整 map 不兼容。然而,对于 5.3 及更低版本,ol-ext 库包含用于比例线、属性和标题的 Canvas 控件 https://viglino.github.io/ol-ext/examples/canvas/map.canvas.control.html在许多情况下,可以从源复制各个控件的代码并进行自定义,而不需要整个库 https://viglino.github.io/ol-ext/dist/ol-ext.js
关于javascript - 使用控制比例线保存 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54615242/