假设我有一个名为 shapeLayer1
的虚拟地球形状图层(我的创造力显然处于历史最低水平)。
当我调用 GetClusteredShapes
方法时,我得到一组 VEClusterSpecification
对象,这些对象代表我当前可见的每个簇;没问题。但是当我调用 GetClusterShape() 方法时,它返回 null...null!它到底为什么要这么做?我使用 firebug 来确认应该保存对形状的引用的 VEClusterSpecification
的私有(private)变量确实为 null,因此它不是导致问题的方法。
Some have suggested这实际上是记录在案的行为
Returns null if a VEClusterSpecification object was returned from the VEShapeLayer.GetClusteredShapes Method
但是看看当前的MSDN documentation for the VEShape class它说:
Returns if a VEClusterSpecification object was returned from the VEShapeLayer.GetClusteredShapes Method
这是一个错误还是一个功能?是否有任何已知的解决方法或(如果这是一个错误)他们何时修复它的一些计划?
最佳答案
我知道它是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);
}
关于javascript - 当通过 GetClusteredShapes 方法检索簇规范时,为什么 GetClusterShape 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777788/