首页 / deck.gl / 使用示例
六边形聚合
九万个点落在六片聚集区,按米制半径分箱后拉成棱柱。 切换 600 米到 2.5 公里四档半径,观察统计单元如何改变结论。
源码与运行效果
说明
六个中心用极坐标撒点,半径按 sqrt(random) 分布,
保证圆内均匀而非中心堆积。每个点带 0.4–2.0 的权重,
颜色与高度都用权重和的 SUM。
| 配置 | 作用 |
|---|---|
radius | 六边形外接圆半径,单位米 |
coverage: 0.9 | 留出 10% 缝隙,相邻单元不粘连 |
elevationRange: [0, 3200] | 固定高度映射,切换半径时高度可比 |
upperPercentile: 100 | 不做百分位排除,避免密集区出现空洞 |
material | 环境光与漫反射,让棱柱有明暗层次 |
半径改变结论
600 米时能看到每个聚集区内部的结构,热点与次热点分离; 2.5 公里时六片区域合并成两三个大块,细节消失,总量对比变得清楚。 同一份数据的三维柱状图,会随分箱粒度给出不同的「最高点」。
代码在切换时重建图层,但 id 与数据引用不变,
deck.gl 会复用顶点缓冲,只重算聚合结果,切换基本无感。
半径与视角要一起定。视口横向装下 20–40 个单元时最易读。
如果一屏只有五六根柱子,说明半径过大;如果细到看不清缝隙,
说明半径过小,此时即使提高 coverage 也无济于事。