我可以将地图保存为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();
});

最佳答案

请注意,在下一个版本中,https://github.com/openlayers/openlayers/blob/master/changelog/upgrade-notes.md OpenLayers将从所有层具有一个画布更改为每个层具有一个画布,这与保存完整地图不兼容。但是,对于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

关于javascript - 使用控制比例线保存 map ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54615242/

10-13 04:04