当我从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);
}
});
答案 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产生影响。