2009-04-22 8 views
1

私はshapeLayer1と呼ばれる仮想アースシェイプのレイヤーを持っているとします(私の創造的なエネルギーは明らかに常に低いです)。GetClusteredShapesメソッドでクラスタ仕様を取得したときにGetClusterShapeがnullを返すのはなぜですか?

GetClusteredShapesメソッドを呼び出すと、現在表示されているクラスターのそれぞれを表すVEClusterSpecificationオブジェクトの配列が取得されます。問題はない。しかし、私がGetClusterShape()メソッドを呼び出すと、nullを返します... null!それはなぜ地球上で起こるのだろうか?私はファイヤーバグを使用して形状への参照を保持するはずのVEClusterSpecificationのプライベート変数が実際にはnullであることを確認して、問題の原因となっているメソッドではないことを確認しました。 VEClusterSpecificationオブジェクトがVEShapeLayer.GetClusteredShapes方法

から返された。しかし、現在のMSDN documentation for the VEShape classを見ていたならば、これは実際に行動に

戻り ヌルを文書化していることを

Some have suggestedそれは言う:

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

これはバグですか、機能ですか?既知の回避策があるか(バグの場合)、修正する予定があるのか​​?

答えて

0

私はまだコードを見ていますが、VEClusteringOptionsコールバックメソッドを使用してカスタムのものを設定したいと思っています。カスタムinfoboxを使用しているため、これは私のためには機能しませんが、クラスタ内の図形に完全にアクセスできる以下の方法を使用して他の人を助けるかもしれません。

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); 
} 
0

あなたはこのようにそれを行うことができますclustershapeはあなたに属している層からレイヤIDを取得する必要がある場合:あなたは別の方法を見つけた場合

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

、ご連絡ください;-)

関連する問題