Управление VEShape кластерного Pushpin в VE SDK 6.2

Предисловие

Я использую недавно выпущенный Microsoft Virtual Earth SDK v6.2, который имеет встроенную поддержку кластеризации меток. Я понимаю, что существуют нестандартные способы кластеризации, на которые легко ответить на мой вопрос, но я бы хотел максимально использовать встроенную поддержку, поэтому этот вопрос конкретно связан с использованием функции кластеризации в VE 6.2 SDK.,

Эта проблема

После включения встроенной кластеризации (через VEShapeLayer.SetClusteringConfiguration) кластеры создаются, как и ожидалось, однако в них есть информация по умолчанию, которая говорит что-то вроде "X элементов, расположенных здесь - увеличьте масштаб, чтобы увидеть детали". В приложении, над которым я работаю, мне нужно отобразить больше информации - мне нужно либо разрешить пользователю нажимать на кнопку, и VE автоматически увеличит масштаб, так что точки теперь различны, ИЛИ отобразить названия точек в информационном блоке, прикрепленном к кнопке кластера. Подвох заключается в том, что форма кластера, которую создает для меня VE, кажется не редактируемой до тех пор, пока не запустится вся логика кластеризации... в этот момент я не знаю, какие исходные кнопки принадлежат этому конкретному кластеру. Есть ли способ сделать это, не прибегая к созданию собственной реализации кластеризации?

2 ответа

В случае, если у других есть такая же проблема, ответ был только что опубликован на форуме MSDN для VE:

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

Мы делаем точно, что я думаю, что вы просите... Попробуйте это

// 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');
    }
}
Другие вопросы по тегам