Клуб 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-запросом. (который кстати можно вообще закешировать)

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

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

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

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

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

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

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