如何在OpenLayers中将矢量层的某些部分作为图像导出到画布?

如何在OpenLayers中将矢量层的某些部分作为图像导出到画布?,openlayers,openlayers-6,Openlayers,Openlayers 6,如何在OpenLayers中将矢量层的某些部分作为图像导出到画布?类似于VectorLayer.render(HtmlCanvasElement,{zoom,extent})您应该能够以与导出示例相同的方式执行此操作,这两个示例都在将画布导出为png或pdf之前创建画布。根据需要调整地图的大小和比例,使其与pdf导出中的缩放或分辨率相匹配,并使用setVisible()隐藏您不想要的图层。@Mike,我不想冒犯openlayers开发人员,但如果您作为一名优秀的程序员,从客观的角度来看该示例,你

如何在OpenLayers中将矢量层的某些部分作为图像导出到画布?类似于
VectorLayer.render(HtmlCanvasElement,{zoom,extent})

您应该能够以与导出示例相同的方式执行此操作,这两个示例都在将画布导出为png或pdf之前创建画布。根据需要调整地图的大小和比例,使其与pdf导出中的缩放或分辨率相匹配,并使用setVisible()隐藏您不想要的图层。@Mike,我不想冒犯openlayers开发人员,但如果您作为一名优秀的程序员,从客观的角度来看该示例,你不觉得他们导出地图的方法有点奇怪吗?这是因为地图可能由多个画布组成,有些是设备像素比例,有些不是,有些是随视图旋转的,有些不是。该代码也与IE兼容。你会发现第三方出口,例如使用类似的代码。不明白多张画布会有什么困难。必须有内部代码来呈现一个层,我现在试图找到它并重定向到外部画布。对于单个层,您可以使用
layer.on('postdrender',function(event){})
并使用
event.context.canvas
访问画布;将图层构造函数中的
className
选项设置为唯一值,以确保图层不会共享画布。您应该能够使用与导出示例相同的方法来执行此操作。两个示例都在将画布导出为png或pdf之前创建画布。根据需要调整地图的大小和比例,使其与pdf导出中的缩放或分辨率相匹配,并使用setVisible()隐藏您不想要的图层。@Mike,我不想冒犯openlayers开发人员,但如果您作为一名优秀的程序员,从客观的角度来看该示例,你不觉得他们导出地图的方法有点奇怪吗?这是因为地图可能由多个画布组成,有些是设备像素比例,有些不是,有些是随视图旋转的,有些不是。该代码也与IE兼容。你会发现第三方出口,例如使用类似的代码。不明白多张画布会有什么困难。必须有内部代码来呈现一个层,我现在试图找到它并重定向到外部画布。对于单个层,您可以使用
layer.on('postdrender',function(event){})
并使用
event.context.canvas
访问画布;将层构造函数中的
className
选项设置为唯一值,以确保层不会共享画布