Клуб API Карт

Как на карту добавить несколько полилиний?

Williams.Smirnov
25 июня 2013, 22:06

рисую полилинии с помощью следующей функции 

function createpolyYA() {
    var myMap = new ymaps.Map('createmap', {
        center: [54.311357, 48.412847],
        zoom: 12,
        behaviors: ['drag', 'scrollZoom']
    });
    myMap.controls
        .add('zoomControl', {
            left: 5,
            top: 5
        })
        .add('typeSelector')
        .add('mapTools', {
            left: 35,
            top: 5
        });
    var polyline = new ymaps.Polyline([], {}, {
        strokeColor: '#0066ffff',
        strokeWidth: 5 // ширина линии
    });
    myMap.geoObjects.add(polyline);
    polyline.editor.startEditing();
    polyline.editor.startDrawing();
    $("span[id='save']").click(
        function () {
            coord = polyline.geometry.getCoordinates();
            var num = $("#num").val()
            if (coord == "") {
                alert("Укажите хотя бы одну вершину геолинии!");
            } else {
                $.post('/templates/editya.php', {
                    'coord': JSON.stringify(coord),
                    'num': JSON.stringify(num)
                }, function (coord, num) {
                    console.log(Удача)
                }, 'json');
                alert("Геолиния успешна сохранена. Для дальнейшей работы с ней перейдите в редактор геолиний!");
            }
        });
}
function proverka(input) {
    var value = input.value;
    var rep = /[-\.;!№#@$%^&?*()_=+":'a-zA-Zа-яА-Я]/;
    if (rep.test(value)) {
        value = value.replace(rep, '');
        input.value = value;
        alert("Номер должет состоять только из чисел!!!");
    }
}

 

Но рисуется только одна ПОЛИЛИНИЯ. Как добавить возможность рисование двух и более полилиний? Заранее спасибо.

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

для начала - вы осознаёте, что у вас при каждом вызове функции создаётся новая карта в всё том же диве?

Запомните главное правило - если хотите чтобы вам помогли, тогда оформляйте вопрос

Williams.Smirnov
25 июня 2013, 22:36

Я не понял вашего ответа. Что вы имеете ввиду. А что дивов должно быть много?

вот этот участок кода в вашей функции пересоздаёт карту при каждом вызове. вследствии чего затираются гео-объекты предведущей карты

 

var myMap = new ymaps.Map('createmap',{

 center:[54.311357,48.412847],

 zoom:12,

 behaviors: ['drag','scrollZoom']});

         myMap.controls

 .add('zoomControl', { left: 5, top: 5 })

 .add('typeSelector')

 .add('mapTools', { left: 35, top: 5 });

Williams.Smirnov
25 июня 2013, 23:38

И как быть?(

объявите карту по document.ready, ymap.ready, вынесите её из функции и всё.