Клуб API Карт

Размещение 32k меток на карте

Пост в архиве.

Мне нужно реализовать отображение одного либо другого набора меток на карте в записимости от масштаба.

При большом масштабе будет показана часть из 32k меток, для меньших масштабов будут показываться другие, заранее просчитанные усредненные метки (кластеризатор с таким количеством не справляется).

Для реализации я решил отслеживать изменение масштаба. Но так как перестраивание кластеризатора с таким количеством точек тяжелая операция (4-15 сек в зависимости от масштаба) я подумал, что можно убирать его с карты перед изменением масштаба, а после, если нужно, добавлять обратно, если масштаб не подходит - отображать другой кластеризатор с меньшим количеством меток.

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


Короче, нужно либо сделать то, что я придумал, либо как-то иначе оптимизировать кластеризатор. Как вариант - у каждой метки есть один параметр, по которому при zoom < 12 их можно склеивать вместе, не рассчитывая больше ничего, и желательно кешировать эту информацию (это если можно переопределить механизм определения того, как кластеризатор определяет какие точки склеивать; в документации этого не сказано, реверс инжиниринт пока не делал на предмет такой возможности).