Клуб API Карт

отобразить все маркеры на карте исключая область

Дарья Миронова
23 марта 2016, 13:25

Здравствуйте. Хочу чтобы у меня маркеры сразу же отображались все на карте. Только вот надо чтобы под списком товаров они не отображались(поверх карты список выводится)  http://prntscr.com/aivb5u . У меня при определенных условиях под списком будут показывать маркеры, а при определенных нет. Размеры списка всегда разные(адаптив).

Сейчас область для маркеров вот так задается

myMap.setBounds(myMap.geoObjects.getBounds());

9 комментариев
Подписаться на комментарии к посту
Можно выбрать маркеры внутри области, затем удалить их.
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoQueryResult-docpage/#searchInside
Дарья Миронова
23 марта 2016, 14:52
dimik,
данный вариант не подходит. Мне же надо чтобы все маркеры показывались. Смысл в том что надо сделать так чтобы с помощью функции myMap.setBounds(myMap.geoObjects.getBounds()); все маркеры разместились вот в этой области http://prntscr.com/aiw7vm
Дарья Миронова,
myMap.setBounds(myMap.geoObjects.getBounds()); настраивает область видимости и масштаб карты таким образом, чтобы были видны все добавленные геообъекты. Я пока не понимаю что именно вы хотите
Дарья Миронова
23 марта 2016, 15:16
dimik,
смотрите у меня карта располагается на весь экран, т.е если я сверну список вот какой вид будет http://prntscr.com/aiwfqa . Т.е если я применю функцию
myMap.setBounds(myMap.geoObjects.getBounds()); у меня маркеры выведутся и на той части карты которая находится под списком(http://prntscr.com/aiwgok), а я хочу сделать чтобы маркеры не выводились под списком, т.е в этой части(если список свернуть) http://prntscr.com/aiwhbq .
Дарья Миронова,
Я понял... Вам поможет опция useMapMargin
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Map-docpage/#setBounds-param-options.useMapMargin
Дарья Миронова
23 марта 2016, 16:04
dimik,
Спасибо:) Есть только вопрос правильно ли я всё поняла.
У меня размер блока 430px и по высоте он 100% . Значит у меня должны быть вот такие настройки

myMap.margin.addArea({
top: 0,
left: 0,
width: 430,
height: '100%'
});

myMap.setBounds(myMap.geoObjects.getBounds(),{
useMapMargin: true
});
Дарья Миронова,
ну если у вас ширина сайдбара 430 пикселей то вроде правильно.
Этот marginManager только появился, я еще пока его не пробовал.
Дарья Миронова,
при сворачивании тулбара вам надо отменять этот отступ
Дарья Миронова
23 марта 2016, 19:18
dimik,
ага спасибо за информацию.