当不使用React但使用webpack时,您可以使用以下代码示例来解决Deck.gl无法渲染指定的容器的问题:
module.exports = {
// ...
resolve: {
alias: {
'@deck.gl/core': path.resolve(__dirname, 'node_modules/@deck.gl/core/dist/esm'),
'@deck.gl/layers': path.resolve(__dirname, 'node_modules/@deck.gl/layers/dist/esm'),
// 添加其他的Deck.gl模块别名(如果需要的话)
}
},
module: {
rules: [
// ...
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
]
}
};
import { Deck } from '@deck.gl/core';
import { ScatterplotLayer } from '@deck.gl/layers';
// 创建一个用于渲染的Deck实例
const deck = new Deck({
canvas: 'deckgl-container', // 指定容器的ID
width: '100%',
height: '100%',
initialViewState: {
longitude: -122.45,
latitude: 37.8,
zoom: 12
},
controller: true,
layers: [
new ScatterplotLayer({
id: 'scatterplot-layer',
data: [
{ position: [-122.45, 37.8], color: [255, 0, 0] },
{ position: [-122.46, 37.79], color: [0, 255, 0] }
],
getPosition: d => d.position,
getFillColor: d => d.color,
getRadius: 100
})
]
});
// 渲染Deck.gl图表
deck.render();
请注意,这只是一个基本示例,您可以根据您的需求进行修改和扩展。确保您已正确导入和安装了必需的Deck.gl模块,并根据您的项目配置进行相应的调整。