DonTraffic
@DonTraffic
Frontend-developer

Как у Яндекс карты по нажатию вызвать большой экран на кастомной кнопке?

Как у Яндекс карты по нажатию вызвать большой экран на кастомной кнопке?
Мой код выглядит так:

ymaps.ready(init);

            function init () {
                var myMap = new ymaps.Map('map', {
                    center: [59.220501, 39.891523], 
                    zoom: 12,
                    controls: ['fullscreenControl']
                }, {
                    searchControlProvider: 'yandex#search'
                })

                var btnFullscreen = new ymaps.control.Button({
                    options: {
                        layout: ymaps.templateLayoutFactory.createClass(
                            "<div class='customZoomBtn'>fullscreen<div/>"
                        ),
                        maxWidth: 150
                    }
                });
                myMap.controls.add(btnFullscreen, {
                    float: 'none',
                    position: {
                        bottom: '25px',
                        right: '25px'
                    }
                });
                btnFullscreen.events.add('click', function (event) {
                    myMap.enterFullscreen()
                });

                myMap.geoObjects.add(new ymaps.Placemark([59.220501, 39.891523], {
                    balloonContent: 'цвет <strong> какой то</strong>',
                    iconCaption: 'текст 2'
                }, {
                    preset: 'islands#blueCircleDotIconWithCaption'
                }));

            }

Проблема при клике, пишет что нету такой функции.
  • Вопрос задан
  • 283 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Яндекс.Карты
myMap.enterFullscreen()

Вы невнимательно читали документацию. Этот метод принадлежит не самой карте, а map.container.

var myMap = new ymaps.Map('map', {

Раз используете Vue, так делать не надо. Вместо id передавайте в конструктор карты сам элемент, для получения которого следует использовать ref:

<div ref="map"></div>

mounted() {
  ymaps.ready(() => {
    this.map = new ymaps.Map(this.$refs.map, {
    ...

https://jsfiddle.net/Lw98kjyc/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы