在使用deck.gl的TileLayer getTileData时,如果想中止对不在当前视口中的tile的请求,该怎么办?
如果您使用的是dececkgl的TileLayer,在getTileData中,您可以传递第二个参数来加载为
{ fetch: { signal: tile.signal } }
,其中tile是来自getTileData的参数
这是完整的代码
getTileData: (tile: any) => {
const {
west, south, east, north
} = tile.bbox;
if (tile.signal.aborted) {
return null;
}
return load(`${tile.url}${south},${west},${north},${east}`, { fetch: { signal: tile.signal } });
},
因此,如果图块不在视口中,那么它将自动取消。