Клуб API Карт

Ожидание полной загрузки карты

Пост в архиве.
DbIMOH
10 июля 2012, 10:52

Доброго времени суток!

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

 

Заранее спасибо за помощь)

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

Если для загрузки геообъектов вы не испольуете методы АПИ Яндекс.Карт, т.е. загружаетет геообъекты с помощью произвольного JSON, а не стандартного YMapsML/KML, то ничего не мешает грузить АПИ и JSON с геообъектами паралельно.

Да, уточните как вы загружаете обьекты.

У стандартного yml загрузчика есть событие загрузки, а если загружаете сами - значит сами и знаете.

//создаю кластер

cluster = new ymaps.Clusterer();

//создаю коллекцию

collection = new ymaps.GeoObjectCollection();

 

//составляю массив точек перебором записей из БД

placemarks[0] = new  ymaps.Placemark([X,Y])

........

//Добавляю в кластер точки

cluster.add(placemarks);

//Добавляю объекты на карту

YMAP.geoObjects.add(cluster);

 

Вот в принципе и весь процесс, а вот как дождатся отрисовки всех точек на карте так и не понял))

Я правильно понимаю что если у Вас будет 500 точек то вы все 500 прямо распечатаете в коде страницы?

Вы абсолютно правильно понимаете, а это плохо? Ведь все они собираются в кластер.

Это плохо, лучше грузить все точки асинхронно отдельным http-запросом. (который кстати можно вообще закешировать)

Тогда и со страницей можно будет работать гораздо раньше.

Идею уловил, но на отрисовку точек в любом случае уйдёт время, как быть?

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

Это самое оптимальное с точки зрения производительности решение. Но оно требует дополнительной разработки на серверной стороне

Огромное спасибо за помощь, очень признателен вам.

никакое время не уйдет.

Как только вы добавите кластер на карту - ровно тогда и отрисуется.