2013-08-12 96 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]

相關問題