Клуб API Карт

Работа с линейкой

Пост в архиве.

Доброе время суток! Подскажите пожалуйста, как отследить включение и отключение линейки. Линейка создаёться стандартно в тулбаре. Например если пользователь нажал на кнопку линейка то ему вылазиет alert('bla-bla-bla'); после отключение линейки ему вылазиет тоже alert('bla-bla-bla');  Зарание спасибо!

7 комментариев
Отслеживать нажатие/отжатие кнопки.
Азат посоветовал все верно. Необходимо отслеживать изменение состояния кнопки с помощью системы событий.
// Создаем панель инструментов
var toolbar = new YMaps.ToolBar(),

     // Получаем список кнопок стандартной группы (перемещение, лупа, линейка)
     buttons = toolbar.getByGroupId(YMaps.ToolBar.DEFAULT_GROUP),

     // Получаем указатель на кнопку линейки
     rulerButton = buttons[buttons.length - 1];

// Навешиваем обработчики событий
YMaps.Events.observe(rulerButton, rulerButton.Events.Select, function () {
    alert("select rulerButton");
});

YMaps.Events.observe(rulerButton, rulerButton.Events.Deselect, function () {
    alert("deselect rulerButton");
});

Можно навесить обработчики событий и до создания панели инструментов.
// Создаем кнопку линейки
var rulerButton = new YMaps.ToolBar.RulerButton();

//
// Создаем обработчики событий
//

var toolbar = new YMaps.ToolBar([new YMaps.ToolBar.MoveButton(), new YMaps.ToolBar.MagnifierButton, rulerButton]);

Работа с панелью инструментов и ее кнопка подробно описана в руководстве разработчика:
http://api.yandex.ru/maps/jsapi/doc/dg/concepts/map-controls-aux.xml#toolbar-control
rodlex,
вопрос, я проложил растояние с помощью линейки, есть ли функция чтобы удалить данное растояние. например я присвоёю кнопку по нажатию на неё будет удаляться проложеное растояние, если есть такая функция, то подскажи пожалуйста!
Sergey Konstantinov
28 января 2016, 07:46
map.setRulerState("");
Проблемка! Прокладываю растояние линейкой, всё нормально. Послен сего вызываю map.setRulerState("");  а потом опять пытаюсь проложить растояние линейкой, а линейка рассояние не прокладывает, на том месте где я кликну просто поялвяеться крассный кружочек (тот который обознасчает точки), как быть?
Sergey Konstantinov
28 января 2016, 07:46
Не могу воспроизвести Вашу проблему - после вызова setRulerState("") линейка работает совершенно обычным образом. Опишите проблему подробнее, а лучше - дайте код.
Прошу прощения, я допустил ошибку. Теперь всё исправил и работает! Большое спасибо за оказанную помощь!