大量对象时自定义集群主题

custom cluster theme when high quantities of objects

基于示例 https://developer.here.com/api-explorer/maps-js/clustering/custom-cluster-theme

从 json 文件加载了 15000 个对象。

集群默认2秒创建,并绘制在地图上。自定义集群主题创建集群长发多请求:

http://savepic.su/5817768.png

我觉得在大数据量下使用用户集群是不行的,是吗?

一般来说,这应该是个问题,除非创建了很多未处理的事件侦听器。你能分享一个你遇到问题的例子吗?

我认为这个问题是由于在自定义主题中创建了很多 H.map.Icon 引起的,您基本上只需要 4 个可以重复使用的图标。使用全局数组 clusterMarkers 创建如下内容:

for (var i = 0; i < 4; i++) {   
            var diameter = 50;          
            switch( i ){
                   case 0 : 
                        diameter = 50;
                        break;  
                   case 1: 
                        diameter = 20;
                        break;
                     case 2: 
                        diameter = 12;
                        break;
                    case 3: 
                        diameter = 10;
                        break;
            };


            var clusterMarker = new H.map.Icon(
                    clusterSvg

                    , {
                    size: {w: diameter, h: diameter},
                    anchor: {x: diameter/2, y: diameter/2}
                    }
                  );
            clusterMarkers[i]=clusterMarker;
        }

然后在主题中

 switch( weight ){
        case weight < 10: 
            i=3;
            break;
     case weight < 100: 
            i=2;
            break;
      case weight < 1000: 
            i=1;
            break;
      case weight < 10000: 
            i=0;
            break;  
     };

    var clusterMarker = new H.map.Marker(cluster.getPosition(), {
        min: cluster.getMinZoom(),
        max : cluster.getMaxZoom(),
        icon: clusterMarkers[i],
      });