Javascript 创建新源不需要';t提供addFeature()
我目前在地图上有一个图层,其源定义了一个“addFeature()”方法。我创建了一个函数,该函数应该将新源/层添加到层组中,但新源没有相同的“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:
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我在我的帖子中添加了更多代码。非常感谢。