LoadingObjectManager

LoadingObjectManager – это инструмент для добавления большого числа объектов на карту (например, меток, кругов, линий). В отличие от ObjectManager, LoadingObjectManager сам производит загрузку данных с сервера, причем только для тех объектов, которые попадают в видимую область карты (ObjectManager работает только с теми объектами, которые были предварительно загружены на сторону клиента).

Примечание. В LoadingObjectManager отсутствует возможность перетаскивать объекты на карте, то есть опция draggable не поддерживается. Также не поддерживается режим редактирования объектов.

LoadingObjectManager принимает на вход JSON-описание объектов. JSON-описание должно содержать идентификаторы объектов, их координаты, а также различные свойства, например содержимое балунов. На основе JSON-описания менеджер создаст оверлеи объектов (их визуальное представление) и отобразит их на карте.

Принцип работы с LoadingObjectManager

При создании менеджера разработчик указывает шаблон URL, в соответствии с которым менеджер будет формировать запросы к серверу за необходимыми данными. Менеджер загружает данные объектов только для тех тайлов, которые попадают в видимую область карты. При этом данные загружаются для всего тайла, даже если этот тайл не попадает в видимую область целиком.

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

Загруженные данные менеджер сохраняет на стороне клиента. Когда пользователь перемещает карту или изменяет уровень масштабирования, менеджер проверяет, были ли загружены данные для новой видимой области и при необходимости подгружает их с сервера.

Менеджер и сервер обмениваются данными в формате JSONP. Это означает, что сервер должен возвращать данные, обернутые в callback-функцию. Разработчику необходимо позаботиться о том, чтобы сервер обрабатывал запросы, приходящие со стороны клиента, и возвращал данные в нужном формате.

На основе загруженных данных LoadingObjectManager создает оверлеи, которые затем добавляет на карту. Оверлеи — это визуальное представление объектов на карте. Для их обработки требуется меньшее количество ресурсов, чем для обработки геообъектов — экземпляров класса GeoObject.

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