Клуб API Карт

Аналоги IOverlay из 1.x в 2.x

Пост в архиве.

Привет.

 

Подскажите, пожалуйста, аналог IOverlay в api 2.x.

Хочется сделать div поверх всей карты, который двигается вместе с картой и на нем рисовать свое содержимое.

 

 

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

Конечно, я видел этот интерфейс.

Кажется, это не то, что надо.

Какой метод вызывается, когда карта отрисовывается?(создается, меняется масштаб)

Как получить div, который будет распологаться поверх карты?

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

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/IPane.xml

На карте я рисую большое количество обьектов.

Например, все автобусные остановки и т.п.

Вот, чем я пользуюсь для реализации функционала в google map api и yandex map api 1.x

 

https://developers.google.com/maps/documentation/javascript/reference?hl=ru#OverlayView

http://api.yandex.ru/maps/doc/jsapi/1.x/ref/reference/ioverlay.xml

 

В обоих случаях у меня есть контейнер(div), который перемещается(при смене центра) вместе с картой.

В этом контейнере, при отрисовке карты, я создаю свои обьекты - div'ы, которые позиционированы по соответсвующим координатам.

 

Такое же поведение хочу реализовать в yandex map api 2.

Отсюда вопрос: Какой аналог IOverlay из 1.х в 2-ой версии api

Кажется вам будет проще использовать уже готовый контейнер. Зачем вам создавать отдельный? Посмотрите http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/Map.xml#panes - там есть пример. В вашем случае нужен контейнер оверлеев 'overlays'. Полный перечень контейнеров описан тут http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/map.pane.Manager.xml

Для контроля над изменениями положения контейнера слушайте на нем события их интерфейса http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/IPane.xml

Спасибо! Это помогло.

Еще один вопрос: А как сделать что бы мои элементы прокидывали сообщения до карты?

Например, если мышка находится поверх моего div'а скролл колесом мыши не приводит к изменению масштаба карты.

Ваши объекты должны сами пробрасывать события на карту. Смотрите http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/MapEvent.xml
Либо вы можете поместить ваши объекты в другой pane, под pane событий (например в graphics). Но при этом вам нужно будет создать активные области для ваших объектов в пейне событий. Активные области будут отрабатывать интерактивность ваших объектов и они дают больше возможностей для управления интерактивностью. Про активные области можно почитать тут http://api.yandex.ru/maps/doc/jsapi/2.x/dg/concepts/about-hotspots.xml