You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Mapbox supercluster点击集群缩放时触发类型错误

问题排查与解决

可能的原因及修复方案

  • 变量拼写错误:代码中出现的articels是拼写错误,正确应为articles。如果articles变量未定义或拼写错误,会直接导致读取.length时抛出Cannot read properties of undefined (reading 'length')错误。修复时将两处articels.length改为articles.length即可。

  • supercluster实例未正确初始化:确保supercluster是已正确初始化的实例,初始化代码需包含必要参数并加载数据:

    import Supercluster from 'supercluster';
    
    const supercluster = new Supercluster({
      radius: 40,
      maxZoom: 16
    });
    // 需传入地理数据完成初始化
    supercluster.load(yourGeoJsonFeatures);
    

    若supercluster未初始化或未加载数据,调用getClusterExpansionZoom时可能内部逻辑出错,间接触发length相关报错。

  • cluster.id有效性问题:确认cluster.id是supercluster生成的合法集群ID。若集群数据未同步或ID无效,getClusterExpansionZoom执行时会内部报错。可在调用前打印cluster.id和supercluster.getClusters([-180, -85, 180, 85], map.getZoom())验证集群数据正确性。

  • mapRef实例未就绪:虽错误提示指向length,但仍需确认mapRef.current在点击时已正确获取map实例。可在onClick中先做存在性判断:

    onClick={() => {
      if (!mapRef.current) return;
      const zoom = Math.min(
        supercluster.getClusterExpansionZoom(cluster.id),
        20
      );
      mapRef.current.flyTo({
        center: [longitude, latitude],
        zoom,
        speed: 5,
      });
    }}
    

内容的提问来源于stack exchange,提问作者Captai-N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:15:25