Создание нового источника не обеспечивает addFeature () - PullRequest
0 голосов
/ 24 апреля 2018

В настоящее время у меня есть слой на карте, и в его источнике определен метод addFeature (). Я создал функцию, которая должна добавлять новые источники / слои в группу слоев, но новые источники не имеют того же метода addFeature (). Вот мой код:

function newLayer() {
var newsource = new ol.source.Vector({
    wrapX: false
});

var newVector = new ol.layer.Vector({
    source: newsource,
    title: document.getElementById("layerName").value
});

vectorGroup.getLayers().getArray().push(newVector);

}

Кто-нибудь знает, почему в моей переменной источника новостей нет метода addFeature?

EDIT Вот еще мой код:

var map = new ol.Map({
    target: 'map',
    layers: [raster],
    view: new ol.View({
        center: ol.proj.transform(
            [-84.387314, 33.749249], 'EPSG:4326', 'EPSG:3857'),
        zoom: 15
    })
});

У меня есть функция кнопки newLayer, которая срабатывает, когда пользователь нажимает кнопку, чтобы он мог создать новый слой.

function newLayer() {
    var newsource = new ol.source.Vector({
        wrapX: false
    });
    var newvector = new ol.layer.Vector({
        source: newsource,
        title: title,
        visible: true
    });

    map.addLayer(newvector);

    vector = newvector;
}

Вот так я обрабатываю рисунок на карте:

var draw; // global so we can remove it later
function addInteraction() {
    var value = typeSelect.value;
    if (value !== 'None') {
        draw = new ol.interaction.Draw({
            source: source,
            type: typeSelect.value
        });
        map.addInteraction(draw);
    }
}


/**
 * Handle change event.
 */
typeSelect.onchange = function() {
    map.removeInteraction(draw);
    addInteraction();
};

addInteraction();

Здесь я слушаю рисунок, который будет добавлен к источнику моего вектора:

vector.getSource().on('addfeature', function(event) {...};

Я могу создать несколько слоев, но когда я пытаюсь рисовать на разных слоях, он будет рисовать только на этот первый слой. Например, если у меня есть два слоя, a и b, и я выбираю использовать b в качестве моей «векторной» переменной, рисование на ней все равно подтолкнет элемент к a вместо b.

...