Javascript 创建新源不需要';t提供addFeature()

Javascript 创建新源不需要';t提供addFeature(),javascript,openlayers,openstreetmap,Javascript,Openlayers,Openstreetmap,我目前在地图上有一个图层,其源定义了一个“addFeature()”方法。我创建了一个函数,该函数应该将新源/层添加到层组中,但新源没有相同的“addFeature()”方法。这是我的密码: function newLayer() { var newsource = new ol.source.Vector({ wrapX: false }); var newVector = new ol.layer.Vector({ source: newsource, title:

我目前在地图上有一个图层,其源定义了一个“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);
}

有人知道为什么我的newsource变量没有addFeature方法吗

编辑 以下是我的更多代码:

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
    })
});
我有一个ButtonNewLayer函数,当用户按下按钮时触发,这样他们就可以创建一个新层

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作为我的“vector”变量,在它上绘图仍然会将功能推到a而不是b。

显示更多代码,我们看不到您尝试在哪里添加功能。@dube我在我的帖子中添加了更多代码。非常感谢。