OpenLayers:如何在3.13v中替换ol.FeatureOverlay?

Sef*_*an2 1 javascript openlayers-3

这里有一个叠加功能示例.

它不适用于3.13 OpenLayers版本,因为不再支持ol.FeatureOverlay.

怎么能被取代?你能举个例子吗?

Jon*_*ker 7

changelog/v3.7.0.md复制并粘贴

而不是ol.FeatureOverlay,我们现在使用ol.layer.Vector一个ol.source.Vector.如果你以前有:

var featureOverlay = new ol.FeatureOverlay({
  map: map,
  style: overlayStyle
});
featureOverlay.addFeature(feature);
featureOverlay.removeFeature(feature);
var collection = featureOverlay.getFeatures();
Run Code Online (Sandbox Code Playgroud)

你必须改变这个:

var collection = new ol.Collection();
var featureOverlay = new ol.layer.Vector({
  map: map,
  source: new ol.source.Vector({
    features: collection,
    useSpatialIndex: false // optional, might improve performance
  }),
  style: overlayStyle,
  updateWhileAnimating: true, // optional, for instant visual feedback
  updateWhileInteracting: true // optional, for instant visual feedback
});
featureOverlay.getSource().addFeature(feature);
featureOverlay.getSource().removeFeature(feature);
Run Code Online (Sandbox Code Playgroud)

  • 我也使用了“ featureOverlay.getSource()。clear();”而不是“ featureOverlay.getFeatures()。clear();” (2认同)