2013-08-12 57 views
1

在向矢量图层添加特征后,我尝试直接获取最新的要素ID(例如'OpenLayers_Feature_Vector_86')。openlayers在矢量图层上添加最新功能

我尝试添加一个事件监听:

eventListeners: { 
"featuresadded": function(feature) { 
    alert(feature.fid); 
    } 
} 

特征中加入以下代码:

vectors.addFeatures(geojson_format.read(featurecollection)); 

预先感谢 弗洛里安

回答

2

featuresadded(注意复数形式)传递整个数组的功能添加(即使它是一个单一的功能它仍然wrappe d在一个数组中),在您的示例中,您试图访问fid特性数组的属性,该特性返回undefined。你应该:

  1. 监听featureadded事件(单数形式):

    传递给侦听器的事件对象将与该增加特征的参考要素属性。

  2. 提取相关特征featuresadded处理程序中,即:

featuresadded: function(features) { 
    var lastFeature = features[features.length - 1]; 
    var lastFeatureId = lastFeature.id; 
} 

作为一般的建议:我建议你使用console.log,而不是alert进行调试,它会显示所有一个对象的属性,使您能够检查它(在这种情况下:请参阅ID属性被称为id,而不是fid)。警报将对象强制转换为字符串,通常会显示无用的内容,例如[object Object]

相关问题