Событие "objectsaddtomap" ведет себя странно. Нажимаю на кнопку - показать точки (кластеры), иногда карта охватывает все точки иногда событие "objectsaddtomap" вообще не вызывается. Вызывается только когда я делаю зум (с размеров города - до размеров страны) - только когда точку видно тогда и срабатывает это событие. Есть список точек, выбираем 1 - показываем все точки на карте (автозум), нажимаю на кластеры, смотрю все точки кластер, опять нажимаю на кнопку смены точек - остаюсь на прежнем месте, точки исчезают т.к. они в другом месте, но при этом они где-то в стороне, а мне надо сразу чтобы экран охватывал все точки.
Вот код:
cluster.add(collection);
myMap.geoObjects.add(cluster);
// функция расчета области видимости всех точек на карте
var visible = function(coords) {
var result = [[999,999],[0,0]], i, l;
console.log(coords.length);
for (i = 0, l = coords.length; l; --l, ++i) {
result[0][0] = Math.min(result[0][0], coords[i][0]);
result[0][1] = Math.min(result[0][1], coords[i][1]);
result[1][0] = Math.max(result[1][0], coords[i][0]);
result[1][1] = Math.max(result[1][1], coords[i][1]);
}
return result;
},
visibleOn;
// загрузка кластера на карту
cluster.events.add('objectsaddtomap', function() {
console.log('objectsaddtomap');
isCluster = true;
for (var i = 0; i < collection.length; i++) {
var geoObjectState = cluster.getObjectState(collection[i]);
if (geoObjectState.isShown) {
if (!geoObjectState.isClustered) collection[i].options.set('iconImageHref', '<?php echo base_url(); ?>images/metka.png');
}
}
if (!geoObjectState.isShown) {
if (visibleFlag != false) {
visibleOn = visible(coords);
myMap.setBounds(visibleOn);
}
}
visibleFlag = false;
});
Может стоит использовать другие события?! Суть в том, что это люди, которые были в разных местах. Выбираю человека А - показываются его точки (кластеры). Наживаю например на кластер, смотрю что-там. Теперь выюираю другого ч-ка, событие "objectsaddtomap" не сработало. Я остаюсь на прежнем месте, но нету ниодной точки т.к. они где-то в стороне. Событие "objectsaddtomap" срабатывает только когда я увеличиваю масштаю карты и вижу точку-кластер, вот тогда в консоли видно что срабатывает евент.