HERE映射JS API v3:监听' clusteringend '事件
HERE Maps JS API v3: listen to `clusteringend` event
是否有方便的方法来判断群集过程是否已经完成/结束?我似乎没有在集群提供程序中看到任何我可以收听的本机clusteringend
事件。
这几天我一直在想这个问题。= (
无所谓。而不是等待一些令人失望的答案从一些HERE地图新手,我试图解决我的问题,并做了一些奇怪的像这样(没有彻底测试,但它一直工作得很好到目前为止):
var
/*
* Work "listen-to-clusteringend-event-issue" around.
*/
processedNoisePointCounter = 0,
incrementProcessedNoisePoint = function () {
processedNoisePointCounter++;
if (processedNoisePointCounter === dataPoints.length) {
map.dispatchEvent('clusteringend');
}
},
clusteredDataProvider = new H.clustering.Provider([]),
defaultTheme = clusteredDataProvider.getTheme(),
customTheme = {
/**
*
* @implements {H.clustering.ITheme.getClusterPresentation}
*/
getClusterPresentation: function (cluster) {
var clusterMarker = defaultTheme.getClusterPresentation.call(defaultTheme, cluster);
cluster.forEachEntry(function (entry) {
if (!entry.isCluster()) {
incrementProcessedNoisePoint();
}
});
return clusterMarker;
},
/**
*
* @implements {H.clustering.ITheme.getNoisePresentation}
*/
getNoisePresentation: function (noisePoint) {
var noiseMarker = defaultTheme.getNoisePresentation.call(defaultTheme, noisePoint);
incrementProcessedNoisePoint();
return noiseMarker;
}
};
clusteredDataProvider.setTheme(customTheme);
clusteredDataProvider.setDataPoints(dataPoints);
var layer = new H.map.layer.ObjectLayer(clusteredDataProvider);
map.addLayer(layer);
map.addEventListener('clusteringend', function () {
var message = 'Clustering allegedly ends. ;)';
console.log(message);
window.alert(message);
});
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- cron作业与Javascript计时事件
- HERE映射JS API v3:监听' clusteringend '事件