1

前言

我正在使用新发布的 Microsoft Virtual Earth SDK v6.2,它内置了对图钉集群的支持。我意识到有一些自定义的集群方法可以很容易回答我的问题,但我想尽可能地利用内置支持,所以这个问题与使用 VE 6.2 SDK 的集群特性特别相关.

问题

启用内置集群(通过 VEShapeLayer.SetClusteringConfiguration)后,集群会按预期创建,但是,其中包含默认信息,例如“X 项目位于此处 - 放大以查看详细信息”。在我正在开发的应用程序中,我需要显示更多信息 - 我需要允许用户单击图钉,VE 将自动放大,以便点现在不同,或者显示点的名称在附加到集群图钉的信息框中。问题是 VE 为我创建的集群形状似乎是不可编辑的,直到所有集群逻辑都运行之后......那时,我不知道哪些原始图钉属于该特定集群。

4

2 回答 2

1

如果其他人有同样的问题,答案刚刚发布在 VE 的 MSDN 论坛上:

http://social.msdn.microsoft.com/Forums/en-US/vemapcontroldev/thread/d55090e2-2f5c-459c-9ecd-c3f32f0505b3/

于 2008-10-16T19:31:10.487 回答
1

我们正在做的正是我认为你所要求的......试试这个

// Create your map
var MapCtl = new VEMap('MapContainer');

// Create a layer for your pins
MapPinLayer = new VEShapeLayer();

// Add a callback that gets called every time the cluster config changes
var clusteringOptions = new VEClusteringOptions();
clusteringOptions.Callback = clusterCallback;

MapPinLayer.SetClusteringConfiguration(VEClusteringType.Grid, clusteringOptions);

// your cluster callback method
function clusterCallback(clusters) {
    for (var i = 0; i < clusters.length; ++i) {
        var cluster = clusters[i];
        var clusterShape = cluster.GetClusterShape();

        var clusterSize = cluster.Shapes.length;

        clusterShape.SetTitle('Some Title');
        clusterShape.SetDescription('There's ' + clusterSize + ' shops in this area');
    }
}
于 2009-04-16T14:53:50.877 回答