Клуб API Карт

Центрирование карты с кластерами

sweelemk
3 апреля 2015, 08:59

Доброго дня. Необходимо на карте создать кластеры. Этот вопрос получилось решить. Однако, на часть карты сверху накладывается хидер, соответственно, все метки распологаются на всю доступную ширину карты и тем самым подъезжают по хидер. Помогите решить вопрос с тем, чтобы катра отображалась только в выбраной области.

 

http://take.ms/Zyxo2

 

Как видно из скриншота, метка подъезжает под хидер. Сейчас карта имеет общую облась, выделенную оранжевым цветом, необходимо, чтобы обасть меток всегда была в зеленой области... не меняя высоты карты, т.е. оранжевую область.

 

Использую карты 2.0

 

Инициализация иммет следующий вид:

 

ymaps.ready(init);
var myMap;
function init(){
myMap = window.map = new ymaps.Map ("map", {
center: [53.90614, 27.54849],
zoom: 12
}),
clusterer = new ymaps.Clusterer({
preset: 'twirl#blueClusterIcons',
groupByCoordinates: false,
clusterDisableClickZoom: true
});

myMap.controls
.add('zoomControl', {
right: '35',
top: '350'
})

getPointOptions = function () {
return {
preset: 'twirl#blueIcon'
};
},
points = [
[53.90672, 27.52199], [53.93099, 27.54069], [53.90614, 27.54849]
],
geoObjects = [];

for(var i = 0, len = points.length; i < len; i++) {
geoObjects[i] = new ymaps.Placemark(points[i], getPointOptions());
}
clusterer.options.set({
gridSize: 80,
clusterDisableClickZoom: false
});
clusterer.add(geoObjects);
clusterer.events.once('objectsaddtomap', function () {
myMap.setBounds(clusterer.getBounds());
});
myMap.geoObjects
.add(clusterer);
}

 

6 комментариев
Подписаться на комментарии к посту

в метод setBounds можно передать zoomMargin в пикселях

https://tech.yandex.ru/maps/doc/jsapi/2.0/ref/reference/Map-docpage/#setBounds

clusterer.add(geoObjects);
clusterer.events.once('objectsaddtomap', function () {
myMap.setBounds(clusterer.getBounds(),[значение в пикселях, например, 500px]);
});

Правильно я понимаю?

разобрался

clusterer.add(geoObjects);
        clusterer.events.once('objectsaddtomap', function () {
            myMap.setBounds(clusterer.getBounds(), {
                zoomMargin: [300, 0, 0, 0]
            });
        });

решение нашел

А как мне так же сделать отступ, когда нажимаешь на кластер и увеличивается область на всю карту

 также 

у кластеризатора тоже есть zoomMargin

А есть ли такой отступ у раскрывшегося балуна?