1

と呼ばれる仮想の地球の形のレイヤーがあるとしますshapeLayer1(私の創造的なエネルギーは明らかにこれまでになく低い状態です)。

メソッドを呼び出すと、現在表示されているクラスターのすべてを表すオブジェクトGetClusteredShapesの配列を取得します。VEClusterSpecification問題ありません。しかし、GetClusterShape()メソッドを呼び出すと、null が返されます... null! なぜそれをするのでしょうか?firebug を使用しVEClusterSpecificationて、シェイプへの参照を保持するはずのプライベート変数が実際に null であることを確認したため、問題の原因となっているメソッドではありません。

これは実際に文書化された動作であると示唆する人もいます

VEClusterSpecification オブジェクトが VEShapeLayer.GetClusteredShapes メソッドから返された場合はnullを返します。

しかし、VEShape クラスの現在の MSDN ドキュメントを見ると、次のように書かれています。

VEClusterSpecification オブジェクトが VEShapeLayer.GetClusteredShapes メソッドから返されたかどうかを返します

これはバグですか、それとも機能ですか? 既知の回避策はありますか、または (バグの場合) いつ修正する予定ですか?

4

2 に答える 2

0

私はそれが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);
}
于 2010-03-12T18:45:35.327 に答える
0

clustershape が属するレイヤーからレイヤー ID を取得する必要がある場合は、次のように実行できます。

var layerId = clusters[i].Shapes[0].GetShapeLayer().MsnId;

別の方法を見つけたら、お知らせください ;-)

于 2010-04-28T13:41:08.213 に答える