Javascript 当通过GetClusteredShapes方法检索集群规范时,为什么GetClusterShape返回null?

Javascript 当通过GetClusteredShapes方法检索集群规范时,为什么GetClusterShape返回null?,javascript,virtual-earth,Javascript,Virtual Earth,假设我有一个虚拟的地球形状层,名为shapeLayer1(我的创造力显然一直很低) 当我调用GetClusteredShapes方法时,我会得到一个VEClusterSpecification对象数组,这些对象表示我当前可见的每个集群;没问题。但是当我调用GetClusterShape()方法时,它返回null。。。无效的它究竟为什么要这样做?我使用firebug确认了VEClusterSpecification的私有变量(该变量应该包含对形状的引用)确实为空,因此不是该方法导致了问题 这实际上

假设我有一个虚拟的地球形状层,名为
shapeLayer1
(我的创造力显然一直很低)

当我调用
GetClusteredShapes
方法时,我会得到一个
VEClusterSpecification
对象数组,这些对象表示我当前可见的每个集群;没问题。但是当我调用
GetClusterShape()
方法时,它返回null。。。无效的它究竟为什么要这样做?我使用firebug确认了
VEClusterSpecification
的私有变量(该变量应该包含对形状的引用)确实为空,因此不是该方法导致了问题

这实际上是记录在案的行为

如果从VEShapeLayer.GetClusteredShapes方法返回VEClusterSpecification对象,则返回null 但从目前来看,它说:

如果从VEShapeLayer.GetClusteredShapes方法返回VEClusterSpecification对象,则返回
这是一个bug还是一个特性?是否有任何已知的解决方法或(如果是bug)计划何时修复它?

我知道它是sux。。。我仍在查看代码,但从我所能看出,他们希望您使用VEClusteringOptions回调方法设置自定义内容。这对我不起作用,因为我使用的是自定义信息框,但它可能会帮助其他人,使用下面的方法,您可以完全访问集群中的形状

function clusteringCallback(clusters)
{
   for (var i=0; i < clusters.length; ++i)
   {
        var cluster = clusters[i];
        var clusterShape = cluster.GetClusterShape();
        clusterShape.SetCustomIcon("<div class='cluster'><div class='text'>"+cluster.Shapes.length+"</div></div>");
        clusterShape.SetTitle("This is my Cluster #" + i);
        clusterShape.SetDescription("This cluster has " + cluster.Shapes.length + " shapes in it!");
   }
}

function SetClustering() 
{
    var options =  new VEClusteringOptions();
    options.Callback = clusteringCallback;
    shapeLayer.SetClusteringConfiguration(VEClusteringType.Grid, options);
}
函数集群回调(集群)
{
对于(变量i=0;i
如果需要从clustershape所属的层获取层id,可以按如下方式操作:

var layerId = clusters[i].Shapes[0].GetShapeLayer().MsnId;
如果您找到其他方法,请通知我们;-)