Здравствуйте, код работает ок. Однако стоит переместить карту из видимости кластера как балун перестает появляться, а было бы здорово чтобы при клике карта скролилась на нужный объект и открывался балун.
function init() {
// Создаем класте и добавляем элементы
GeoObjects[0] = statMap.setGeoObjectPoint({...});
clusterer = new ymaps.Clusterer({
clusterDisableClickZoom: false,
clusterBalloonHeight: 360
});
clusterer.add(GeoObjects);
map.geoObjects.add(clusterer);
// После клика ищем терущий эелемент и открываем его балун
var ID = 1;
var current = findObjectById(ID);
var geoObjectState = clusterer.getObjectState(current);
geoObjectState.cluster.state.set('activeObject', current);
geoObjectState.cluster.balloon.open();
}
// поиск нужного геообъекта
findObjectById = function(id) {
var i = 0, group;
while (group = GeoObjects[i++]) {
if (group.properties.get('ID') === id) {
return group;
}
}
return null;
}
// Создаем геообъект
function setGeoObjectPoint(value) {
return new ymaps.GeoObject({
geometry: {type: "Point", coordinates: value.coordinates},
properties: {
ID: value.ID,
clusterCaption: value.address,
balloonContentBody: value.details + '<div><img src="' + value.photo + '"></div>',
body: '<img src="' + value.photo + '">',
fullname: value.fullname,
date: value.time
}
}, {
balloonContentHeaderLayout: ymaps.templateLayoutFactory.
createClass('<div>$[prope
balloonContentBodyLayout: ymaps.templateLayoutFactory.
createClass('$[properties.ID] <div>$[properties.balloonContentBody]</div>'),
balloonContentFooterLayout: ymaps.templateLayoutFactory.
createClass('<i>$[properties.fullname]</i>'
+ '<i>$[properties.date]</i>')
});
}