Клуб API Карт

ymaps.geoQuery and Clusterer

sms24md.com
28 сентября 2015, 09:58
// Заполняем коллекцию данными.
for (var i = 0, l = g_json.length; i < l; i++) {
var point = g_json[i];
myGeoObjects[i] = new ymaps.Placemark(point.coords, getPointData(i), getPointOptions());
}

var
c = ymaps.geoQuery(myGeoObjects).searchInside(myMap);
myMap.geoObjects.add(c.clusterize());

// Это наш кластер (я так понимаю)
console.log(myMap.geoObjects.get(0))


// Вопрос: как вывести все Placemark
var html = '';
var result = ymaps.geoQuery(myMap.geoObjects).searchIntersect(myMap).search('geometry.type == "Point"');
result.each(function (pm) {
html += pm.geometry.getCoordinates();
html += ' - ' + pm.properties.get('iconContent');
html += "<hr>";
});
html += '<br>';
$("#list").html(html);

// Если не кластировать, то все отлично выводиться...
4 комментария
Подписаться на комментарии к посту
// Создаем коллекцию.
myGeoObjects = [];

// Заполняем коллекцию данными.
for (var i = 0, l = g_json.length; i < l; i++) {
    var point = g_json[i];
myGeoObjects[i] = new ymaps.Placemark(point.coords, getPointData(i), getPointOptions());
}

g_result = ymaps.geoQuery(myGeoObjects).searchInside(myMap);
myMap.geoObjects.add(g_result.clusterize());

$("#btn4").click(function () {
    var index = 0;
var html = '';
//var result = ymaps.geoQuery(myMap.geoObjects).searchIntersect(myMap).search('geometry.type == "Point"');
var result = ymaps.geoQuery(myGeoObjects).searchIntersect(myMap);
result.each(function (pm) {
        index++;
html += index + ') ' + pm.geometry.getCoordinates();
html += ', name = ' + pm.properties.get('name');
html += "";
});
html += '
';
$("#list").html(html);

});

Кластеризатор сам по себе отображает только точки в области видимости карты, поэтому так делать не имеет смысла