关于前端:在-OpenLayers-中清除数据

42次阅读

共计 764 个字符,预计需要花费 2 分钟才能阅读完成。

OpenLayers 中,各个概念的程序是 map -> layer -> source -> feature -> geometry -> coordinates

你要操作 layer 的话是在 map 上,操作 source 是在 layer 上,顺次类推

当数据变动时,就须要将之前的数据革除掉

OpenLayers 中革除数据有两种形式:

  1. removeFeature
  2. removeLayer

removeFeature

removeFeature 办法是在 source 上,所以先要获取到 source

react 中,你能够将 source 保留为状态,就能够在页面中任意地位应用 source,就不须要再通过 layer.getSource 形式获取 source

source.getFeatures().forEach((feature) => source.removeFeature(feature));

source.forEachFeature((feature) => source.removeFeature(feature));

removeLayer

removeLayer 办法是在 map 上,应用比较简单

react 中要留神的,layer 也要保留到状态中,否则 addLayer(layer)removeLayer(layer) 这两个 layer 可能不是同一个 layer

map.removeLayer(layer);

removeFeatureremoveLayer 应用场景

他们应用场景的区别是

  • removeFeaturelayer 不会变动的场景中应用
  • removeLayerlayer 会变动的场景中应用

也就是说以后组件不会从页面中隐没,那你在革除数据时优先应用 removeFeature,否则应用 removeLayer

从页面中隐没是指组件之间相互切换,不显示的组件会从 dom 中删除

正文完
 0