Проблема с очисткой поиска и маршрутами Yandex Map JS API

У меня возникло 2 проблемы

  1. Не могу понять как вызвать метод clear() у SearchControl, в документации нет примера пробовал делать так:
search = new ymaps.control.SearchControl({
    useMapBounds: true,
    noPopup: true
});
search.clear();

Появлялась ошибка clear is not a function Подскажите пожалуйста верный вызов метода, чтобы результат поиска нормально очистить

  1. В моем решении проекте подстановка начальной точки для маршрута в зависимости от того, какой регион выбрал пользователь. При этом при смене региона, вводе адреса и построении нового маршрута, данные берутся старые и приходится несколько раз нажимать на поиск чтоб это вылечить. Удаление маршрута не помогает, подскажите пожалуйста в чем может быть проблема Вот код
ymaps.route([sklad,point]).then(function (rout) {
    if(router) myMap.geoObjects.remove(router);
    router = rout.getPaths();
    router.options.set({ strokeWidth: 5, strokeColor: '#002233', opacity: 1});
    deliveryData.distance = Math.round(rout.getLength()/1000);
    myMap.geoObjects.add(router);
});

Так же у меня возник вопрос, как при использовании метода router.options.set задать параметр масштабирования, чтобы весь маршрут был виден?

Заранее спасибо


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

Автор решения: Evgeny
  1. Примеры применения методов есть в документации. Сначала вы создаете экземпляр SearchControl (как у вас в коде), затем отдельно вызываете searchControl.clear()
  2. К сожалению, по приложенному вами фрагменту кода ничего не понять. Попробуйте удалять проложенный ранее маршрут сразу после смены региона.
  3. >как при использовании метода router.options.set задать параметр масштабирования, чтобы весь маршрут был виден? Лучше при создании класса multiRouter.MultiRoute добавьте ему параметр boundsAutoApply: true Область видимости карты будет меняться при каждом перестроении маршрута.

И правильнее было бы оформить каждый вопрос отдельным постом, так другим пользователям будет проще отвечать и искать ответы.

→ Ссылка