У меня есть массив, заполненный объектами типа ol.Feature, которые я добавляю к новому объекту типа ol.source.Vector, используя следующий код:
for (var i in stages)
{
console.log(stages[i].Longitude, stages[i].Latitude);
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([stages[i].Longitude, stages[i].Latitude], 'EPSG:4326', 'EPSG:3857')),
name: stages[i].Title
});
iconFeature.setStyle(iconStyle);
iconFeatures.push(iconFeatures);
}
try
{
var vectorSource = new ol.source.Vector({
features: iconFeatures
});
}
catch (e)
{
console.log(e);
}
Блок try/catch добавлен, потому что у меня не было никаких ошибок (Angular/Ionic).
Когда я загружаю приложение, я получаю следующую ошибку:
TypeError: feature.getId не является функцией
var id = feature.getId();
Что перенаправляет меня на linenumber консоли.log, то есть ошибка должна быть внутри создания источника вектора.
Я полностью застрял здесь, примеры, которые повсюду в Интернете, делают то же самое, любая помощь будет назначена.
Очевидно, вы можете массировать массив без ошибок.
Полностью моя вина
iconFeatures.push(iconFeatures);
должно быть
iconFeatures.push(iconFeature);
iconFeatures.push(iconFeatures);
Вы можете захотетьiconFeatures.push(iconFeature);