openlayers在vectorlayer上添加了最新功能

时间:2013-08-12 09:25:59

标签: vector openlayers layer

我尝试在向矢量图层添加功能后直接获取最新的featureID(例如'OpenLayers_Feature_Vector_86')。

我尝试添加一个eventlistener:

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

使用以下代码添加该功能:

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

提前致谢 弗洛里安

1 个答案:

答案 0 :(得分:2)

featuresadded(注意复数形式)传递了一个完整的数组添加的功能(即使它是一个单独的功能,它仍然包含在一个数组中),在你的例子中你正在尝试访问返回fid的要素数组的undefined属性。你应该:

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

      

    传递给侦听器的事件对象将具有一个feature属性,其中包含对添加的功能的引用。

  2.   
  3. 提取featuresadded处理程序中的相关功能,即:
  4.      

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

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

    这样无用的内容