JSFiddle - React, Tailwind, and code Playground
HTML
<script src="//api-maps.yandex.ru/2.1/?lang=ru_RU&mode=release&coordorder=longlat"></script>
<div id="YMapsID" class=map></div>
<button id="rem">Убрать маршрут</button><button id="show">Показать маршрут</button>
CSS
.map {
width:98%;
height:550px;
}
JavaScript
var map;
var way;
ymaps.ready(function(){
map = new ymaps.Map("YMapsID", {
center: [37.64, 55.76],
zoom: 9,
type: "yandex#map"
});
newRoute();
$('#rem').click(function() { way&&map.geoObjects.remove(way); });
$('#show').click(function() { newRoute(); });
});
function newRoute() {
ymaps.route([[37.01417, 55.46548],[37.28926, 55.72927]], {avoidTrafficJams:true}).then( //строим маршрут
function (route) { //маршрут готов и нет ошибок
map.geoObjects.add(way = route);
var routeLength=Math.round(route.getLength()/1000); //длина маршрута в км
var routeTime=Math.floor(route.getTime()/60); //время в минутах
var routeJamsTime=Math.floor(route.getJamsTime()/60); //время с пробками в мин.
route.getPaths().options.set({
balloonContentLayout: ymaps.templateLayoutFactory.createClass('Общая длина маршрута: '+routeLength+'км.<br>Время в пути(без учета пробок): '+routeTime+'<br>Время в пути(с учетом текущих пробок): '+routeJamsTime+'<br><a href="#" onclick="newRouteDelete(); return(false);" >Убрать маршрут</a>'),
strokeColor: '777700ff'
});
},
function (error) { //какая то ошибка
alert('Возникла ошибка: ' + error.message);
}
);
}
function newRouteDelete() { //принудительное удаление маршрута с карты
way&&map.geoObjects.remove(way);
}