Клуб API Карт

Прошу помощи с удалением Полилинии с карты

Joker1984
4 июля 2014, 05:38

Ребята, с yandex map работаю не так давно но вот не могу разобраться как удалить полилию

1) есть ф-я которая повешана на click:

 

 $.post("/get_points.php", {
         user_id: "<? echo $uid; ?>",
         password: "<? echo $password;?>",
         child_id: child_id,
         type: type,
         data: arr
     },
     function (json) {
         if (!json.errCode) {
             for (i = 0; i < json.length; i++) {
                 var myPlacemark = new ymaps.Placemark([json[i].lat, json[i].lng], {
                         // Свойства
                         hintContent: json[i].hinttext,
                         balloonContentHeader: json[i].header,
                         balloonContentBody: json[i].balloontext,
                         balloonContentFooter: json[i].footer
                     }, // Опции
                     { // preset: +json[i].preset
                         preset: 'mystyle#' + json[i].preset
                     }
                 );
                 myCollection.add(myPlacemark);
                 if (i == json.length - 1) {
                     go_to(json[i].lng, json[i].lat);
                 }
                 points.push([+json[i].lat, +json[i].lng]);
             }
             if (type != 'online') {
                 poliline(points);
             } - здесь мы вызываем ф - ю которая рисует нам полилинию
         } else {
             alert(json.errMessage);
         }
     }, 'json');
 myMap.geoObjects.add(myCollection);
 return false;

 

все отлично метки выводятся на карту и рисуется полилиния

   if (type !='online'){poliline(points); }  - здесь мы вызываем ф-ю которая рисует нам полилинию

вот сама ф-я  function poliline(points)

  

function poliline(points) {
    console.log(points);
    var color = $.cookie('child_color');
    if (color == '') {
        color = '#CC3300';
    }
    // Создаем ломаную линию.
    var polyline = new ymaps.Polyline(points, {
        hintContent: "Путь следования"
    }, {
        draggable: true,
        strokeColor: color,
        strokeWidth: 4,
        strokeStyle: '1 2' // Первой цифрой задаем длину штриха. Второй цифрой задаем длину разрыва.
    });
    myMap.geoObjects.add(polyline); // Добавляем линию на карту.
    myMap.setBounds(polyline.geometry.getBounds()); // Устанавливаем карте границы линии.
}

 

проблема заключается в том что если несколько раз кликать на  кнопку то каждый раз добавляется новая полилиня, удалить все полинии перед созданием новых

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

Можно хранить ссылку на созданную полилинию в родительском scope вашей функции polyline и удалять ее с карты перед созданием новой и замены ссылки, либо добавлять полилинию в отдельную коллекцию, а не в myMap.geoObjects и делать ей перед добавлением myCollection.removeAll();