LoadingObjectManager
LoadingObjectManager – это инструмент для добавления большого числа объектов на карту (например, меток, кругов, линий). В отличие от ObjectManager, LoadingObjectManager
сам производит загрузку данных с сервера, причем только для тех объектов, которые попадают в видимую область карты (ObjectManager
работает только с теми объектами, которые были предварительно загружены на сторону клиента).
Примечание
В LoadingObjectManager
отсутствует возможность перетаскивать объекты на карте, то есть опция draggable не поддерживается. Объекты отображаются только в центральном мире и не перепрыгивают при драге карты.
Также не поддерживается режим редактирования объектов.
LoadingObjectManager
принимает на вход JSON-описание объектов. JSON-описание должно содержать идентификаторы объектов, их координаты, а также различные свойства, например содержимое балунов. На основе JSON-описания менеджер создаст оверлеи объектов (их визуальное представление) и отобразит их на карте.
Принцип работы с LoadingObjectManager
При создании менеджера разработчик указывает шаблон URL, в соответствии с которым менеджер будет формировать запросы к серверу за необходимыми данными. Менеджер загружает данные объектов только для тех тайлов, которые попадают в видимую область карты. При этом данные загружаются для всего тайла, даже если этот тайл не попадает в видимую область целиком.
Менеджер может загружать данные в двух режимах: сразу для всей видимой области карты или отдельно по тайлам. Режим загрузки данных выбирается разработчиком при создании менеджера. От режима загрузки зависят частота обращений к серверу и скорость загрузки данных. Кроме того, в зависимости от режима загрузки на сервере может быть по-разному организована структура данных. Подробнее о режимах загрузки данных.
Загруженные данные менеджер сохраняет на стороне клиента. Когда пользователь перемещает карту или изменяет уровень масштабирования, менеджер проверяет, были ли загружены данные для новой видимой области и при необходимости подгружает их с сервера.
Менеджер и сервер обмениваются данными в формате JSONP. Это означает, что сервер должен возвращать данные, обернутые в callback-функцию. Разработчику необходимо позаботиться о том, чтобы сервер обрабатывал запросы, приходящие со стороны клиента, и возвращал данные в нужном формате.
На основе загруженных данных LoadingObjectManager создает оверлеи, которые затем добавляет на карту. Оверлеи — это визуальное представление объектов на карте. Для их обработки требуется меньшее количество ресурсов, чем для обработки геообъектов — экземпляров класса GeoObject.
Прежде чем приступать к разработке клиентской части, разработчику следует продумать архитектуру серверной части. В разделе Разработка серверной части приведены особенности работы менеджера, которые необходимо учитывать при реализации серверной части. Также в разделе содержатся некоторые рекомендации по размещению данных на сервере.