Клуб API Карт

Кластеризация линий

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

Имеет ли данное действие смысл? По окончанию действий всех будет иметься 8к+ линий. Заметил что линии рисуются не полностью, вдруг задался вопросом, а не встроена ли кластеризация линий в апи? 

9 комментариев

Сейчас кластеризатор умеет оперировать только точечными объектами.

т.е. все линии прогружаются сразу и занимают место в оперативке вне зависимости от области видимости?

я написал ф-цию которая делает мне запрос из базы на все линии и выбирает их в зависимости от области видимости и передаёт их в ф-цию прорисовки. Имеет ли смысл такая ф-ция или прорисовка линий и так происходит только в области видимости? 

Sergey Konstantinov
28 января 2016, 03:21

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

воооот! это меня и интересовало! Почему не выдержит? Как понимаю из-за того, что все мои линии уже находятся в оперативой памяти браузера, используемой для хранения этих линий? Т.е. моя пэховская ф-ция имеет смысл из-за того, что я сортирую что надо прорисовывать серверно, а не клиентски браузером? Благодарен за ответ.

Да, сел насильно нарисовал в одном месте(которое не вижу) 1600 полилиний(с двумя вершинами) - грузилось около 15 секунд + отожрало лишних 70мб памяти. Увы моя карта подразумевает минимум 8к максимум 50к+, так что убедился что моя "кластеризация" или отбор по области видимости имеет смысл.

Всем спасибо, вопрос решён. З,Ы, попозже мб выложу ф-цию в общее пользование, мало ли кому пригодится?

используя технологию активных областей можно нарисовать и большее число линий без потери производительности и с минимальными потерями траффика

Яндекс использует ее для отображения пробок

Sergey Konstantinov
28 января 2016, 03:21

На 0-м масштабе все ваши 8К линий будут видны одновременно, как их не обрезай.

у меня ограничение маштаба стоит