Клуб API Карт

Информация о маршруте

AdmiralFrost
24 ноября 2014, 03:58

Имеется маршрут построенный на карте и маршрутный лист, как в примере: https://tech.yandex.ru/maps/jsbox/2.1/router

Как можно вывести данные о маршруте в отдельном текстовом поле?

var routeLength = route.getLength(); // Длина маршрута
var firtstPathTime = firstPath.getTime(); // Время без учета пробок
var firstPathFirstSegmentJamsTime = firstPathFirstSegment.getJamsTime();// Время с пробками 

 

И вопрос №2: Возможно ли на карте отображать одновременно два маршрута ( с учетом пробок и без)?

3 комментария
Подписаться на комментарии к посту

Сам справиться не могу, подскажите как реализовать:

1. Сейчас реализовано: прокладывается маршрут из точки А в точку Б с учетом пробок по-умолчанию.

Нужно прокладывать из точки А в точку Б два маршрута (с учетом пробок и без), например один будет красный, а другой серый.

Пытался из этого примера добавить кнопку "учитывать пробки", но:

после нажатия кнопки маршрут не перестраивается + не изменяется маршрутный лист. А еще после построения нового маршрута добавляется еще одна кнопка  "учитывать пробки".

Но лучше конечно строить сразу два маршрута. 

 
var myMap, route;
ymaps.ready(init);
function init () {
myMap = new ymaps.Map("map", {
center: [55.74954, 37.621587],
zoom: 12
}),

$('#search_route').submit(function () {
var start = $("#start").val();
var end = $("#end").val();

ymaps.route([
[start], [end]], {avoidTrafficJams: true,
mapStateAutoApply: true, 
}).then(function (router) {
route && myMap.geoObjects.remove(route);
route = router;
myMap.geoObjects.add(route);

getViaPoints.
var points = route.getWayPoints(),
lastPoint = points.getLength() - 1;
points.options.set('preset', 'islands#redStretchyIcon');
points.get(0).properties.set('iconContent', 'Точка отправления');
points.get(lastPoint).properties.set('iconContent', 'Точка прибытия');

var moveList = 'Трогаемся,
',
way,
segments;
for (var i = 0; i < route.getPaths().getLength(); i++) {
way = route.getPaths().get(i);
segments = way.getSegments();
for (var j = 0; j < segments.length; j++) {
var street = segments[j].getStreet();
moveList += ('Едем ' + segments[j].getHumanAction() + (street ? ' на ' + street : '') + ', проезжаем ' + segments[j].getLength() + ' м.,');
moveList += '
'
}
}
moveList += 'Останавливаемся.';
$('#list').append(moveList);

}, function (error) {
alert("Возникла ошибка: " + error.message);
});
return false;
});
}

 

2. Маршрутный лист сейчас выводится таким образом

т.е. в результате получаем "проезжаем хх.хх м." - расстояние в метрах. Так вот, сотые и десятые метров не нужны, т.е. 35.07 м = 35 м.. А когда расстояние более 1000м - преобразовывать в км.

3. Ну и последнее, так я и не понял как мне вывести информацию о маршруте (нужны: общая длина маршрута, общее время без учета пробок и  общее время с пробками) типа как маршр.лист 

и т.д.  

Использование АПИ предполагает знание Javascript.

Мы можем что-то подсказать или ответить на вопрос об АПИ, но писать логику для всех проектов у которых нет своих разработчиков, мы не можем.

Попробуйте найти исполнителя в клубе, разместив пост с тегом "работа", либо поискать его на спец. сайтах фрилансеров