Клуб API Карт

Удаление старого маршрута

Ctepanov-tony
17 октября, 07:54

Есть функция которая при клике строит новый маршрут, а старый при этом не удаляется. 

.find('a')

.bind('click', function () {

var to = placemark.geometry._coordinates;

var multiRoute = new ymaps.multiRouter.MultiRoute({

referencePoints: [from, to],

}, {

editorDrawOver: false,

wayPointDraggable: false,

viaPointDraggable: false,

routeStrokeColor: "000088",

routeActiveStrokeColor: "ff0000",

pinIconFillColor: "ff0000",

boundsAutoApply: true,

zoomMargin: 30

});

myMap.geoObjects.add(multiRoute);

if (!placemark.balloon.isOpen()) {

placemark.balloon.open();

} else {

placemark.balloon.close();

}

return false;

});

}

Не пойму как удалить старый маршрут

1 комментарий
Разобрался, код ниже, может кому поможет
ymaps.ready(init);
function init() {
var from = [55.049854, 55.955224];
var Route = {};
// Создание экземпляра карты.
var myMap = new ymaps.Map('map', {
center: [55.049854, 55.955224],
zoom: 11,
boundsAutoApply: true
}, ),
// Контейнер для меню.
menu = $('<ul class="menu-map"/>');

for (var i = 0, l = groups.length; i < l; i++) {
createMenuGroup(groups[i]);
}
function createMenuGroup (group) {
// Пункт меню.
var menuItem = $('<li><strong><a href="#">' + group.name + '</a></strong></li>'),
// Коллекция для геообъектов группы.
collection = new ymaps.GeoObjectCollection(null, { preset: group.style }),
// Контейнер для подменю.
submenu = $('<ul class="submenu"/>');
// Добавляем коллекцию на карту.
// myMap.geoObjects.add(collection);
// Добавляем подменю.
menuItem
.append(submenu)
// Добавляем пункт в меню.
.appendTo(menu)
// По клику удаляем/добавляем коллекцию на карту и скрываем/отображаем подменю.
.find('a')
.bind('click', function () {
if (collection.getParent()) {
myMap.geoObjects.remove(collection);
submenu.hide();
} else {
myMap.geoObjects.add(collection);
submenu.show();
}
});
for (var j = 0, m = group.items.length; j < m; j++) {
createSubMenu(group.items[j], collection, submenu);
}
}
function createSubMenu (item, collection, submenu) {
// Пункт подменю.
var submenuItem = $('<li><a href="#">' + item.name + '</a></li>'),
// Создаем метку.
placemark = new ymaps.Placemark(item.center, { balloonContent: item.name });
// Добавляем метку в коллекцию.
collection.add(placemark);
// Добавляем пункт в подменю.
submenuItem
.appendTo(submenu)
// При клике по пункту подменю открываем/закрываем баллун у метки.
.find('a')
.bind('click', function () {
myMap.geoObjects.remove(Route);

var to = placemark.geometry._coordinates;

Route = new ymaps.multiRouter.MultiRoute({
referencePoints: [from, to],
}, {

boundsAutoApply: true,
zoomMargin: 30
});

myMap.geoObjects.add(Route);
});
}

// Добавляем меню в тэг BODY.
menu.appendTo($('.city-name .container'));

}