使用控制比例尺线保存地图

2022-04-05 00:00:00 javascript openlayers

我可以将地图保存为PNG图像,但如何将比例尺线控件添加到此画布?

// 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();
});

OpenLayers

请注意,在下一个版本中https://github.com/openlayers/openlayers/blob/master/changelog/upgrade-notes.md推荐答案将从针对所有层的单一画布更改为针对每个层的画布,这将与保存完整地图不兼容。但是,对于5.3和更低版本,ol-ext库包括用于比例线、属性和标题的画布控件https://viglino.github.io/ol-ext/examples/canvas/map.canvas.control.html在许多情况下,可以从源代码复制和定制单个控件的代码,而不需要整个库https://viglino.github.io/ol-ext/dist/ol-ext.js

相关文章