我尝试在向矢量图层添加功能后直接获取最新的featureID(例如'OpenLayers_Feature_Vector_86')。
我尝试添加一个eventlistener:
eventListeners: {
"featuresadded": function(feature) {
alert(feature.fid);
}
}
使用以下代码添加该功能:
vectors.addFeatures(geojson_format.read(featurecollection));
提前致谢 弗洛里安
答案 0 :(得分:2)
featuresadded
(注意复数形式)传递了一个完整的数组添加的功能(即使它是一个单独的功能,它仍然包含在一个数组中),在你的例子中你正在尝试访问返回fid
的要素数组的undefined
属性。你应该:
featureadded
事件(单数形式):
传递给侦听器的事件对象将具有一个feature属性,其中包含对添加的功能的引用。
featuresadded
处理程序中的相关功能,即:
featuresadded: function(features) {
var lastFeature = features[features.length - 1];
var lastFeatureId = lastFeature.id;
}
作为一般性提示:我建议使用console.log
代替alert
进行调试,它会显示对象的所有属性,使您能够检查它(在这种情况下:请参阅ID属性称为id
,而不是fid
)。警报将对象强制转换为字符串,通常显示像[object Object]