Here api 当对象数量较多时自定义群集主题

Here api 当对象数量较多时自定义群集主题,here-api,Here Api,以身作则 从json文件加载15000个对象 默认情况下,将在2秒钟内创建群集,并在地图上绘制。“自定义群集”主题创建了一个包含长请求和多个已发送请求的群集: 我认为在大量数据中使用用户集群是不可能的,是吗?一般来说,这应该是一个问题,除非创建了大量未处理的事件侦听器。你能举一个你面对这个问题的例子吗 我认为这个问题是由于在自定义主题中创建了大量的H.map.Icon造成的,您基本上只需要4个可以重用的图标。使用全局数组clusterMarkers创建如下内容: for (var i = 0

以身作则

从json文件加载15000个对象

默认情况下,将在2秒钟内创建群集,并在地图上绘制。“自定义群集”主题创建了一个包含长请求和多个已发送请求的群集:


我认为在大量数据中使用用户集群是不可能的,是吗?

一般来说,这应该是一个问题,除非创建了大量未处理的事件侦听器。你能举一个你面对这个问题的例子吗

我认为这个问题是由于在自定义主题中创建了大量的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;
        }
(变量i=0;i<4;i++)的

var直径=50;
开关(一){
案例0:
直径=50;
打破
案例1:
直径=20;
打破
案例2:
直径=12;
打破
案例3:
直径=10;
打破
};
var clusterMarker=新的H.map.Icon(
集群SVG
, {
尺寸:{w:直径,h:直径},
锚定:{x:diameter/2,y:diameter/2}
}
);
聚类标记[i]=聚类标记;
}
然后在主题中

 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],
      });
开关(重量){
箱子重量<10:
i=3;
打破
箱子重量<100:
i=2;
打破
箱子重量<1000:
i=1;
打破
箱子重量<10000:
i=0;
打破
};
var clusterMarker=new H.map.Marker(cluster.getPosition(){
min:cluster.getMinZoom(),
max:cluster.getMaxZoom(),
图标:clusterMarkers[i],
});

谢谢!同样的,现在显示重做标记对象都很好。如果使用自定义集群主题,如何显示每个集群的权重?