当地图“ reclusters” 时,我需要运行一些代码,请查看此GIF以了解我的意思。
有什么方法可以知道何时发生这种情况,还是有某种事件可以收听?
类似的东西:
map.on('cluster', function() {
//code here
})
我当前的解决方案是在以下位置运行我的代码:
map.on('zoom', () => {
//my code
})
通过在zoom
事件上运行我的代码,我的代码在每次用户放大或缩小时都运行,尽管我只需要在地图聚类时运行它即可。有什么可以做的吗?预先感谢
答案 0 :(得分:0)
设法找到一个解决方案,可能不是最好的,但是以下代码对我有用:(简体)
// to keep track of the amount of clusters rendered
var previousClusterCount = 0
function foo() {
//get all currently rendered clusters
clusters = map.querySourceFeatures('your-cluster-layer')
// if the amount of rendered clusters is different from the previous cluster count
// then it means that the user has zoomed enough to trigger a "reclustering"
// as shown in the GIF above
if (clusters.length !== previousClusterCount) {
//update cluster count
previousClusterCount = clusters.length
//run some code
}
}
// set callback on zoom
map.on('zoom', foo)