Как вынести за пределы Яндекс-карты SearchControl (встроить его в свой html)?

Необходимо перенести SearchControl карты на свою часть html-кода. Возможно ли это сделать, и если да - то каким образом?


Ответы (1 шт):

Автор решения: YaCor'

Условия пользования Яндекс запрещают использовать API недокументированными методами. Перенос элементов карты во внешние блоки HTML вроде нигде в документации не упоминается.

Но можно задать свой контрол поиска на кастомный статический пейн с параметром overflow: 'visible'. При такой реализации контрол будет виден за пределами карты. А его расположение вы можете указать в нужной точке относительно карты.

//Добавление статичного пейна для кастомной панели управления
var staticPane = new ymaps.pane.StaticPane(myMap, {zIndex: 910, overflow: 'visible'});
myMap.panes.append("customPane", staticPane);
//Добавление менеджера контролов на кастомный пейн
var manager = new ymaps.control.Manager(myMap,[],{
pane: staticPane
});
//высота карты для смещения панели маршрутизации под неё
var mapHight = myMap.container.getSize()[1]
//Добавление контролов на новую панель
manager.add('searchControl', {
maxWidth: 300,
position: {top: mapHight}
})
//Получение ссылки на новый контрол для программной работы после
var searchPanel= manager.get('searchControl');

https://jsfiddle.net/Coroner1st/pzyfu4gx/24/

→ Ссылка