首页 / MapLibre / 使用示例
点聚合
320 个点在低缩放时合并成圆簇,数字表示数量,点击后自动放大到能看清单点的级别。 聚合全部在浏览器里完成,不需要服务端切片。
源码与运行效果
说明
聚合开启后,源会额外生成带 point_count 的簇要素,
用 ['has', 'point_count'] 区分簇与单点。
三层分别负责簇的圆、簇内数量文字、以及未聚合的单点。
点击簇时调用 getClusterExpansionZoom(cluster_id),
返回该簇刚好散开时的缩放级别,再用 easeTo 跳过去,
不会一放大就散成一片无法阅读的点。
| 配置 | 取值 | 说明 |
|---|---|---|
cluster | true | 开启客户端聚合 |
clusterRadius | 48 | 聚合半径,像素 |
clusterMaxZoom | 8 | 超过该级别不再聚合 |
circle-radius | step 表达式 | 按数量分级,避免大小失真 |
point_count_abbreviated | 属性 | 大数字自动显示为 1.2k |
clusterRadius 调大时簇更少更大,适合总览;
调小时接近原始点位,适合核查分布。改变它需要重建源,
不能像绘制属性那样直接 set。
聚合是客户端计算,几万个点尚可,上百万点会拖慢首次解析。 这种量级应改用服务端预聚合的瓦片或网格统计。