Клуб API Карт

Как получить длину линейки (ruler) 2.1

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

Здравствуйте!

Ребята, подскажите примером как сложить все точки ruler.geometry в цикле. Всю голову поломал, просто перед глазами пример 1.х версии карт и я вообще в растерянности. Или быть может есть что-то откуда можно взять готовое расстояние (цифрой) намерянное линейкой на карте? Нужно просто значение для дальнейших рассчетов в своем скрипте. Спасибо.

7 комментариев

Мне всегда смешно, когда я читаю посты типа "бюсь не первый час" или "сижу второй день, "сломал всю голову"

Какой толк смотреть на пример, тем более для 1.х?

 

Я потратил примерно 2 мин. на чтение документации

 

console.log(myMap.behaviors.get('ruler').geometry.getDistance());

 

 

Вариант с форматированием

 

console.log(ymaps.formatter.distance(myMap.behaviors.get('ruler').geometry.getDistance()));

Спасибо! Я документацию тоже не понимаю, так как не знаю JavaScript. Учусь с примеров, а так как в песочнице ничего нет про линейку, спросил тут. Еще раз спасибо.

Либо я не понимаю, либо оно не работает.. В getDistance() я ведь чего-то должен передать?

Может не так объяснил. На карте тыкаю линейкой какое-то расстояние, в итоге в последней точке я вижу цифру. Вот ее нужно показать на стренице еще раз только вне карты. А потом я уже работаю с ней в PHP скрипте, после сабмита. На карте же выводится эта цифра с расстоянием, неужели ее просто нельзя повторить и ничего для этого нет?

Надо подписаться на событие изменения состояния линейки и в обработчике получать расстояние как я написал выше

А стандартная линейка как работает и как выводит значение намеренного расстояния?

Вижу так и не продвинулось.

Подпишитесь на изменение состояния геометрии линейки, и получайте в ней длину ломаной.

 

    myMap.behaviors.get('ruler').geometry.events.add('change', function (e) {

        console.log(e.get('target').getDistance());

    });