AnteaterKit / angular2-yandex-maps

Angular 2 components Yandex Maps.
27 stars 23 forks source link

Работа с "controls" #11

Open LikSaint opened 7 years ago

LikSaint commented 7 years ago

Добрый день! Отличный модуль! спасибо вам за него! Он нам очень поможет, если мы сможем его удачно прикрутить!). Есть несколько проблем, я надеюсь вы мне поможете. Никак не могу найти способ управлять "controls", чтобы добавить к SearchControl параметры, например "boundedBy". Видел у вас issue на тему "работа с controls", но она закрыта. Не подскажете?

AnteaterKit commented 7 years ago

Добрый день! спасибо! Добавил в пример работу с controls карты https://plnkr.co/edit/3RjzXm4xvOjKbasNeHZy?p=preview Но вам нужно более детальное управление, например его опции: var searchControl = new ymaps.control.SearchControl({ options: { float: 'left', provider: 'yandex#search' } }); Это еще не реализовано, я могу добавить в след версию.

LikSaint commented 7 years ago

Спасибо за ответ. Да, это было бы круто, еслиб в следующей версии это было, а пока мы реализовали это так:

this.yaMap._mapsWrapper._map
            .then((map) => {
                const searchControl = new this.window.nativeWindow.ymaps.control.SearchControl({
                    options: {
                        float: 'right',
                        floatIndex: 100,
                        noPlacemark: true
                    }
                });
                map.controls.add(searchControl);
            })
            .catch(console.error);

т.е. взяли элемент из дома('yaMap') вызвали _map(сама карта), Затем нашли в window элемент ymaps, и через него создали элемент-контроллер searchControl. Затем запихнули его в карту. Возможно стоит дать доступ к нативной карте из вашего модуля напрямую =) а то мы долго разбирались как его достать). p.s.: this.window это врапер window. Во втором ангуляре с этим некоторые проблемы. p.p.s.: в представленном коде параметры searchControl прописаны для теста.

Valt25 commented 6 years ago

А как вы получили объект карты ymaps? У меня всегда undefined. Становится объектом если только дождаться загрузки карты. Как вы это делаете?