我有一个使用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但结果相同。
任何帮助都将不胜感激,谢谢。