Клуб API Карт

Как подружить ymaps.route c routingMode 'masstransit'?

krabmani9
12 февраля 2016, 10:47
ymaps.route([coords, result.geoObjects.get(0).geometry.getCoordinates()],{
  'routingMode': 'masstransit' // Все-равно остается в auto
}).then(function(route){
  // console.log '1', Math.round(route.getJamsTime() / 60);
  route.options.set('routingMode', 'masstransit'); // Все-равно остается в auto
  self.map.geoObjects.add(route);
});

Не устанавливаются параметры для ymaps.route. В документации описано и показано как сделать, но это не срабатывает (https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/route-docpage/#param-params и ниже примеры)
 

6 комментариев
Всеволод Шмыров
12 февраля 2016, 11:15
Добрый день.
Режим "masstransit" работает только с мультимашуртизацией
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/route-docpage/#param-params.routingMode
Вам просто нужно добавить опцию multiRoute: true https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/route-docpage/#param-params.multiRoute
Всеволод Шмыров,
Возможно я что-то делаю не так, но у меня теперь вообще не отрабатывает:

ymaps.route([
coords,
res.geoObjects.get(0).geometry.getCoordinates()
], {
multiRoute: true,
routingMode: 'masstransit'
}).then(function(route){
console.log '0', Math.round(route.getJamsTime() / 60);
self.map.geoObjects.add(route);
});
Всеволод Шмыров,
Разобрался, нужно было then на done поменять.
Теперь разбираюсь, как получить время getJamsTime
Всеволод Шмыров,
Спасибо за помощь!
krabmani9,
 Подскажи, как сделал? меняю на done, второй пример https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/route-docpage/#param-params.routingMode
у меня не работает. пишет TypeError: route.getJamsTime is not a function

vladimir.synchak@maxitlab.com
18 апреля, 03:15
matyin79,
может кому-то пригодится, сам долбался долго и нудно)


var multiRoute = new ymaps.multiRouter.MultiRoute({
referencePoints: [
[company_lat, company_lng],
[lat,  lng]

],
params: {
routingMode: 'pedestrian'
}
});
multiRoute.model.events.add('requestsuccess', function () {
route = multiRoute.getActiveRoute();
time_data_list.push({
'type': 'pedestrian',
'time': route.properties.get('duration').text,
'length': route.properties.get('distance').text
});
count_check_points -= 1;
});
Обновлено 18 апреля, 03:16