OpenLayers将画布保存到图像无法隐藏图层

时间:2018-05-08 09:37:35

标签: android openlayers-3

我有一个使用OpenLayers 4.6.5的(Ionic 3.19)应用程序。我添加了一些带有一些功能的地图图层(Vector)。

问题: 当我尝试使用不可见的图层保存地图的图像时,图像仍然包含图层。 这仅适用于Android ,而不适用于PC或iOS。

代码(TypeScript):

layer1.setVisible(false)
this._map.renderSync();
// context is the map @ViewChild
var canvas = this.context.nativeElement.getElementsByTagName('canvas')[0] // array length 1
var tmpCanvas = document.createElement('canvas');
var ctx = tmpCanvas.getContext('2d');
ctx.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, newWidth, newHeight);
tmpCanvas.toBlob(blob => {
    // Save image in blob
}, 'image/jpeg', 0.95);
layer1.setVisible(true)

已在Android 8.1和5.1手机上测试过。

当我调试layer1时,可见性确实是错误的。

如果我在点击事件上切换图层的可见性,它会按预期工作:

layer1.setVisible(!layer1.getVisible())

我还测试过使用setOpacity(0)而不是setVisible但结果相同。

任何帮助都将不胜感激,谢谢。

0 个答案:

没有答案