Слой активных областей

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

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

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

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

Технология активных областей

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

Для того чтобы объекты стали интерактивными, то есть могли взаимодействовать с пользователем, поверх картиночного слоя на карту добавляется слой активных областей. Он предоставляет API сведения о том, какие участки карты должны быть интерактивными.

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

Слой активных областей содержит информацию об активных областях — их позицию, типы их геометрий, а также некоторые свойства (например, содержание их балуна или хинта). Эта информация представляется в формате JSON.

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

Слой активных областей обменивается данными с сервером с помощью специального объекта — источника данных. Источник данных формирует и отправляет запрос за информацией об активных областях нужного тайла и возвращает данные слою.

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

Однако есть возможность использования кэша браузера. Подробнее об этом см. в разделе Использование кэша браузера.

Слой активных областей и картиночный слой существуют независимо друг от друга, и порядок их добавления на карту неважен. В некоторых случаях слой активных областей может использоваться и без картиночного (например, если нужно сделать интерактивным изображение какого-то дома на карте). На карту может быть добавлено несколько слоев активных областей.