gpt4 book ai didi

javascript - 如何从 openlayers 6 中 map 的 postcompose 事件获取 Canvas

转载 作者:行者123 更新时间:2023-12-04 10:58:37 24 4
gpt4 key购买 nike

我们使用的是 openlayers,在 5.3 版中我们使用的是这种结构:

map.once('postcompose', async(event) => {
let canvas = event.context.canvas;
// doing something with canvas
}

但是在 openLayers 6.0 中,event 的参数上下文是未定义的(这当然破坏了我们的应用程序)。

我读了here那:

图层不再由单个 Canvas 元素组成。相反,它们作为单独的元素添加到 map 视口(viewport)。

那么如何获取单层的 Canvas 呢?

我还读了here那:

Canvas 上下文。当事件由 map 调度时不可用。仅在使用 Canvas 渲染器时可用,否则为 null。

是否可以以某种方式将 Canvas 渲染器设置为所有图层,以便 CanvasRenderingContext2D 不会为“postcompose”事件 未定义?

最佳答案

使用 ol6 在层上使用 postrender 事件和新的 getVectorContext 函数提供对即时矢量渲染 API 的访问。
参见 https://github.com/openlayers/openlayers/releases/tag/v6.0.0

获取单个层上的渲染上下文:

import {getVectorContext} from 'ol/render';

// construct your map and layers as usual

layer.on('postrender', function(event) {
const vectorContext = getVectorContext(event);
// use any of the drawing methods on the vector context
});

关于javascript - 如何从 openlayers 6 中 map 的 postcompose 事件获取 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58996092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com