2008-10-15 8 views
1

PréfaceVEShape de contrôle en cluster dans Punaise VE SDK 6.2

J'utilise Microsoft Virtual Earth SDK nouvelle version v6.2 qui a un support intégré pour le regroupement de pushpin. Je me rends compte qu'il existe des façons personnalisées de faire du cluster où ma question est facile à répondre, mais je voudrais tirer le meilleur parti du support intégré, donc cette question est spécifiquement liée à l'utilisation de la fonctionnalité de clustering du SD 6.2 .

Le problème

Après avoir activé le regroupement intégré (via VEShapeLayer.SetClusteringConfiguration), les clusters sont créés comme prévu, mais ils ont les informations par défaut en eux qui dit quelque chose comme « X éléments situés ici - zoomer pour voir les détails ". Dans l'application sur laquelle je travaille, j'ai besoin d'afficher plus d'informations que cela - soit je dois permettre à l'utilisateur de cliquer sur la punaise et VE va zoomer automatiquement afin que les points soient maintenant distincts OU afficher les noms des points dans l'infobox attaché à la punaise du cluster. La capture est que la forme de cluster que VE crée pour moi ne semble pas être modifiable tant que toute la logique de clustering n'a pas été exécutée ... à ce stade, je ne sais pas quels pushpins originaux appartiennent à ce cluster particulier. Existe-t-il un moyen d'y parvenir sans recourir à la création d'une implémentation de clustering personnalisée?

Répondre

1

Nous faisons precicely ce que je pense que vous demandez ... Essayez cette

// 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'); 
    } 
}