Openlayers 5图标未在地图上显示

时间:2019-03-08 13:42:28

标签: javascript html openlayers openlayers-5

我正在使用OpenLayers 5创建一个带有图标的简单地图。我遵循了Icon Colors example,它可以正常工作。现在,我从数组更改了源数据。例如,我要在地图上显示四个点。

window.locs = [{
        "y": "52,51241",
        "x": "13,38961"
      }, {
        "y": "52,52107",
        "x": "13,38773"
      }, {
        "y": "52,52488",
        "x": "13,40369"
      }, {
        "y": "52,54902",
        "x": "13,41655"
      }];

我仅更改了创建矢量源的部分,从手动一个接一个地设置到使用循环。

for (var i in window.locs) {
    var data = window.locs[i];
    iconFeature = new ol.Feature({
            geometry: new ol.geom.Point(ol.proj.fromLonLat([parseFloat(data.x.replace(",", ".")), parseFloat(data.y.replace(",", "."))]))
        });

    iconFeature.setStyle(new ol.style.Style({
            image: new ol.style.Icon(/** @type {module:ol/style/Icon~Options} */({
                    color: [113, 140, 0],
                    crossOrigin: 'anonymous',
                    src: 'https://openlayers.org/en/v3.20.1/examples/data/dot.png'
                }))
        }));
    window.iconFeatures.push(iconFeature);
}
var vectorSource = new ol.source.Vector({
        features: window.iconFeatures
    });

不幸的是,这些图标没有显示在地图上。如果我不使用循环,则会显示图标。我有很多数据,无法一一指定值。

这是我的JSFiddle:Fiddle

我该如何解决?

1 个答案:

答案 0 :(得分:1)

该图层需要添加到地图中

map.addLayer(vectorLayer);