Openlayers 3:加载的矢量要素上的交互

时间:2016-01-14 15:16:22

标签: javascript openlayers-3

当我从this example使用地图交互时,从头开始创建功能集合非常顺利:

var features = new ol.Collection();

但是当我尝试在导入的功能上定义地图交互时:

var geojsonObject = { ...a well defined (visible) GeoJSON object ...};
var features = new ol.format.GeoJSON().readFeatures(geojsonObject)

我得到以下异常:

  

错误:addEventListener和attachEvent不可用。 (ol.js:34:302)

当我在修改交互定义中使用要素集时:

modifyInteraction = new ol.interaction.Modify({
                features: features,
                deleteCondition: function(event) {
                    return ol.events.condition.shiftKeyOnly(event) &&
                    ol.events.condition.singleClick(event);
                }
            });

2 个答案:

答案 0 :(得分:0)

您是将功能附加到Vector源和f.ex ol.layer.Vector吗?

答案 1 :(得分:0)

这行代码

var features = new ol.format.GeoJSON().readFeatures(geojsonObject)

返回一系列要素而不是ol.Collection要素。

另一方面,ol.interaction.Modify期望获得features个参数作为ol.Collection个功能。我怀疑这是你的错误所在。

尝试将上面的代码行改为此

var features = new ol.Collection(new ol.format.GeoJSON().readFeatures(geojsonObject));

请注意,以上所有内容都会对最新版本的ol3产生影响。