OpenLayers:如何在 3.13v 中替换 ol.FeatureOverlay?
OpenLayers: how can be ol.FeatureOverlay replaced in 3.13v?
Here 有一个叠加功能示例。
它在 3.13 OpenLayers 版本上不起作用,因为不再支持 ol.FeatureOverlay。
如何替换?能举个例子吗?
复制粘贴
我们现在使用 ol.layer.Vector
和 ol.source.Vector
,而不是 ol.FeatureOverlay
。如果您以前有:
var featureOverlay = new ol.FeatureOverlay({
map: map,
style: overlayStyle
});
featureOverlay.addFeature(feature);
featureOverlay.removeFeature(feature);
var collection = featureOverlay.getFeatures();
您必须将其更改为:
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);
我遇到了同样的问题。 OpenLayers 网站上有最新版本 (Vector Layer - v3.14.2) 的更新示例,其中的功能在鼠标悬停时突出显示。
对于 OL 6.3.1 Vector Layer 演示鼠标悬停时的突出显示
Here 有一个叠加功能示例。
它在 3.13 OpenLayers 版本上不起作用,因为不再支持 ol.FeatureOverlay。
如何替换?能举个例子吗?
我们现在使用 ol.layer.Vector
和 ol.source.Vector
,而不是 ol.FeatureOverlay
。如果您以前有:
var featureOverlay = new ol.FeatureOverlay({
map: map,
style: overlayStyle
});
featureOverlay.addFeature(feature);
featureOverlay.removeFeature(feature);
var collection = featureOverlay.getFeatures();
您必须将其更改为:
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);
我遇到了同样的问题。 OpenLayers 网站上有最新版本 (Vector Layer - v3.14.2) 的更新示例,其中的功能在鼠标悬停时突出显示。
对于 OL 6.3.1 Vector Layer 演示鼠标悬停时的突出显示