У меня проблема с добавлением списка точек в векторный источник, слой и, наконец, на карту в Openlayers. Вначале я создаю пустой массив, после этого я перебираю заданный набор данных и создаю новую точку со значком и текстовым полем для каждой функции и сохраняю маркер в списке. В конце концов я хочу создать новый ol.source.Vector() с массивом, что приводит к ошибке «c.Xa не является функцией». Если я просто возьму один маркер из списка и добавлю его к источнику вектора и карте, все будет работать нормально с правильным положением на карте, правильным значком и правильным текстом.
var markers=[];
for(var i=1; i<ResearchStations.length; i++){
var mark=new ol.Feature({
geometry: new ol.geom.Point(
ol.proj.fromLonLat([lon, lat], proj3031)
),
});
var icon = new ol.style.Style({
image: new ol.style.Icon({
...
}),
text: new ol.style.Text({
...
})
})
mark.setStyle(icon);
markers[i]=mark;
}
console.info(1)
var vectorSource = new ol.source.Vector({
features: [markers],
});
console.info(2)
var StationLayer = new ol.layer.Vector({
source: vectorSource,
});
console.info(3)
map.addLayer(StationLayer);Ошибка возникает после console.info(1)
О да, действительно, мне приходится одновременно обрабатывать проект Matlab :( Спасибо!
@Mike Можете ли вы опубликовать свои комментарии в качестве ответов? Потому что я видел несколько сообщений, в которых ваши комментарии отвечают на вопрос, но не публикуются как ответ и принимаются.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вероятно, это потому, что у вас есть пустая запись в markers[0]. Вы намеренно опускаете
ResearchStations[0]? Если это так, чтобы заполнить массив маркеров с самого начала, заменитеmarkers[i]=mark;наmarkers.push(mark);