在 deck.gl 中触发 BitmapLayer 的重绘
Trigger redraw of the BitmapLayer in deck.gl
我有一张地图作为图像,可以通过 url 上的 API 访问。作为映射过程的一部分,此图像不断更新,而 url 始终相同。
为了在前端显示它(反应),我使用 BitmapLayer 并将 image 属性 设置为所需的 url。它在初始化时正确呈现。
我的问题是如何更新地图。我有一个在服务器上更新图像时触发的事件。触发此事件时,我会更新图层。但是图像没有得到更新,这实际上是有道理的,因为 deck.gl 只更新变化而 url 没有改变......所以我试图通过使用 来解决这个问题updateTriggers 属性 像这样:
new BitmapLayer({
id: "bitmap-layer",
image: image_url,
updateTriggers: {
image: [Math.random()]
}
})
想在触发器更改时更新图像(在触发更改事件时调用)。但是图像没有得到更新。
我也尝试在每次更改时更改图像层的id,但图像仍然没有改变。
因此,我的问题是,是否有可能在不更改 url 的情况下以某种方式触发图像更新?
同时刷新图像的一种方法 url 可以添加唯一的缓存破坏查询参数,例如:
image: image_url + "?t=" + new Date().getTime(),
我有一张地图作为图像,可以通过 url 上的 API 访问。作为映射过程的一部分,此图像不断更新,而 url 始终相同。
为了在前端显示它(反应),我使用 BitmapLayer 并将 image 属性 设置为所需的 url。它在初始化时正确呈现。
我的问题是如何更新地图。我有一个在服务器上更新图像时触发的事件。触发此事件时,我会更新图层。但是图像没有得到更新,这实际上是有道理的,因为 deck.gl 只更新变化而 url 没有改变......所以我试图通过使用 来解决这个问题updateTriggers 属性 像这样:
new BitmapLayer({
id: "bitmap-layer",
image: image_url,
updateTriggers: {
image: [Math.random()]
}
})
想在触发器更改时更新图像(在触发更改事件时调用)。但是图像没有得到更新。
我也尝试在每次更改时更改图像层的id,但图像仍然没有改变。
因此,我的问题是,是否有可能在不更改 url 的情况下以某种方式触发图像更新?
同时刷新图像的一种方法 url 可以添加唯一的缓存破坏查询参数,例如:
image: image_url + "?t=" + new Date().getTime(),