如何添加geojson指向openlayers 3/4 map并使其可点击以打开包含属性的弹出窗口?

时间:2018-05-03 05:14:59

标签: openlayers openlayers-3

使用openlayers 3/4,我在绘制仅包含点的featurecollection时遇到问题。我想做的就是在地图上绘制点,当你点击它时,它会显示一个弹出窗口,它会显示它拥有的一个属性。

我得到的错误是: core.js:1448 ERROR TypeError:a.Yf不是函数     在ol.js:152

我的代码是:

let points = {
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "properties": {
            'text':'World',
            'id': 'Point 1'
        },
        "geometry": {
            "type": "Point",
            "coordinates": [somecoords]
        }
    }]
};

var thepoint = new ol.source.Vector({
    title: 'Hello Point',
    features: (new ol.format.GeoJSON()).readFeatures(points)
  });

  map.addLayer(thepoint);

问题是什么?我怎么能做到这一点?错误根本不明确。

1 个答案:

答案 0 :(得分:1)

您的帖子中没有足够的有关您的坐标的信息。显示问题的jsfiddle示例使这些事情更容易解决。

我建议遵循这个geoJSON示例:

https://openlayers.org/en/latest/examples/geojson.html

密切注意地图投影,如果你的geoJSON是正确的并且你在地图上看不到任何点,你的投影很可能对于所使用的坐标是错误的:

https://openlayers.org/en/latest/doc/faq.html#how-do-i-change-the-projection-of-my-map-

在选择中,请参阅此文档:

此处的选择示例https://openlayers.org/en/latest/examples/select-features.html