OpenLayers Vector Layer最大特征数



我想知道是否有可能限制你在矢量层上绘制的特征数量。如果我已经画了一个多边形,然后再画一个,它会删除第一个特征。

如果没有,是否可以添加一个监听器到矢量层,这样我就可以擦除所有的特征时,点击绘制?

谢谢! !

你不能在Vector Layer上设置最大数量的特征,但它有很多事件,你可以在其中注入自己的逻辑。以下是可用的事件:

"beforefeatureadded", "beforefeaturesadded",
"featureadded", "featuresadded", "beforefeatureremoved",
"beforefeaturesremoved", "featureremoved", "featuresremoved",
"beforefeatureselected", "featureselected", "featureunselected", 
"beforefeaturemodified", "featuremodified", "afterfeaturemodified",
"vertexmodified", "vertexremoved", "sketchstarted",
"sketchmodified", "sketchcomplete", "refresh"

你可以使用"beforefeatureadded",例如:

your_vectror_layer.events.on({'beforefeatureadded': function(){
  //Remove first feature or whatever you want to do
}});

你可以创建一个按钮,当你点击它时,它会删除矢量图层中的所有特征:

map.layers [1] .removeAllFeatures ();

这里1是我的图层的id(我的矢量图层是OSM图层之后的第二个图层)

祝你好运

最新更新