mapbox使用cluster聚合配置clusterMaxZoom不生效问题

问题描述

使用mapbox官网提供的例子Create and style clusters聚合显示大数据量。

在这里插入图片描述

使用clusterMaxZoom配置最大聚合层级,当配置一个较大层级,例如20级别时,还未到该层级就不聚合了

原因分析:

一、可以看到官网提供的代码如下:

map.addSource('earthquakes', {
	type: 'geojson',
	// Point to GeoJSON data. This example visualizes all M1.0+ earthquakes
	// from 12/22/15 to 1/21/16 as logged by USGS' Earthquake hazards program.
	data: 'https://docs.mapbox.com/mapbox-gl-js/assets/earthquakes.geojson',
	cluster: true,
	clusterMaxZoom: 14, // Max zoom to cluster points on
	clusterRadius: 50 // Radius of each cluster when clustering points (defaults to 50)
});

二、对于clusterMaxZoom的解释如下:

如果启用了群集,则对其进行群集的最大缩放。默认值为比最大缩放小一个缩放(这样最后一个缩放功能就不会聚集在一起)。集群将在整数缩放级别上重新评估,因此将clusterMaxZoom设置为14意味着集群将显示到z15。

那为什么clusterMaxZoom配置20则未到该层级就不聚合了呢?

三、查看源码

在这里插入图片描述

可以从代码中看见给添加的source设置了默认的maxzoom,但是取的是clusterMaxZoom与maxzoom-1的最小值。

那么默认的maxzoom是多少呢?如下maxzoom=18,所以说添加source的时候不配置maxzoom,当clusterMaxzoom>18时是不会生效的。

在这里插入图片描述

解决方案:

当想在一个比较大的层级(zoom>18)仍然聚合时,在修改clusterMaxzoom值的同时,也需要配置maxzoom

原因就是mapbox给聚合的source默认配置了最大级别为18。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值