Клуб API Карт

Кластеризация - проблема со стилями кластеров и начальным позиционированием

SveDiKa.RU
16 марта 2016, 03:40

Знаний не много, бился три дня. Итог здесь: http://restorany-koroleva.ru/restorany_koroleva.v1.htm
Что-то мне подсказывает, что не все там верно, но работает.

Остались нерешенными две проблемы:
1. Не могу задать никаких свойств кластерам. Просто не реагирует ни на что и все тут!
2. Не могу выполнить "позиционирование карты так, чтобы на ней были видны все объекты".
(В коде закоментированы строки, которые в разных кусках "песочницы" исправно работали, а у меня не работают).

Принципиальны следующие моменты:
Поскольку объектов не много, до 100, и этот же скрипт будет использоваться для вывода на карту только 1 объекта, перечень объектов в одтельный файл выносить ни к чему.
Обязательно должны быть уникальные для каждого объекта балуны и хинты.
В общем, тот функционал, который есть сейчас, измениться не должен.

Большая просьба! Прежде, чем написать сюда, трое суток ковырял "песочницу", документацию, Гуглил, Яндексил, танцевал с бубном и прочее - ритуал исполнил полностью. Помогите готовым кодом, если не трудно.

 

6 комментариев
1. Какие св-ва кластерам вы задаете и где?
2. Позиционировать карту, как и любые другие действия с АПИ надо делать внутри обработчика ymaps.ready, а не снаружи
dimik,
спасибо! Проглядел закрывающие...
Методом научного тыка с остальными вопросами разобрался.

Возник еще вопрос по ходу. В кластеризаторе используется параметр zoomMargin - отлично работает, когда карта в исходном размере. Но когда карта в полный экран, лучше было бы использовать максимальный зум, как в начальном позиционироании карты.
Есть такая возможность?
SveDiKa.RU,
Слушайте на контейнере карты события "fullscreenenter" / "fullscreenexit" и меняйте опции кластеризатору
dimik,
примеров использования найти не смог, а на большее моих мозгов не хватает...
SveDiKa.RU,
myMap.container.events
.add('fullscreenenter', function () {
myClusterer.options.unset('zoomMargin');
})
.add('fullscreenexit', function () {
myClusterer.options.set('zoomMargin', 100);
});
dimik,
нет, не работает. Но в любом случае, спасибо за помощь!

Пока ковырялся, пришло понимание, что метод никуда не годится - в связи с разным разрешением на разных устройствах. Тут либо в процентах нужно указывать, а лучше зумом.

Оставлю как есть. И еще раз спасибо!