Клуб API Карт

Как получить длину мультимаршрута?

rarescrap
21 августа 2017, 09:49

Добрый день. Я хочу научить карту прокладывать маршрут через несколько точек и отображать длину проложенного маршрута. У меня получилось машрут проложить, но с длиной возникли проблемы:
1) multiRoute.getRoutes() возвращает пустой массив
2) multiRoute.getActiveRoute() возвращет null

Я знаю, что есть пример в песочнице (https://tech.yandex.ru/maps/jsbox/2.1/multiroute_data_access), но я не могу его пока использовать т.к. multiRoute.getRoutes() ничего не возвращет.

Код карты:

function init () {
	/**
	 * Тестовый массив с метками адресов
	 */
	var adresses = [
		  [52.282071, 104.287999],
		  [52.276622, 104.316408],
		  [52.262905, 104.302418],
		  [52.225794, 104.311010]
		];
	
    /**
     * Создаем мультимаршрут.
     * Первым аргументом передаем модель либо объект описания модели.
     * Вторым аргументом передаем опции отображения мультимаршрута.
     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/multiRouter.MultiRoute.xml
     * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/multiRouter.MultiRouteModel.xml
     */
    var multiRoute = new ymaps.multiRouter.MultiRoute({
        // Описание опорных точек мультимаршрута.
        referencePoints: [
          [52.282071, 104.287999],
  		  [52.276622, 104.316408],
  		  [52.262905, 104.302418],
  		  [52.225794, 104.311010]
        ]
    }, {
        // Автоматически устанавливать границы карты так, чтобы маршрут был виден целиком.
        boundsAutoApply: true
    });

    // Создаем карту с добавленными на нее кнопками.
    var myMap = new ymaps.Map('map', {
        center: [55.750625, 37.626],
        zoom: 7,
    }, {
        buttonMaxWidth: 300
    });
   
    // КОРЕНЬ ЗЛА!
    var a = multiRoute.model.getRoutes();

    // Добавляем мультимаршрут на карту.
    myMap.geoObjects.add(multiRoute);
}

ymaps.ready(init);

Скажите, что я делаю не так и как узнать длину мультимаршрута?