Javascript OpenLayers 3要素覆盖覆盖要素样式
我有一个使用OpenLayers 3.0编写的web地图,我正在尝试升级到OpenLayers 3.6。 FeatureOverlay的行为似乎完全不同。 我有为每个要素定义了样式的KML图层,我想使用带有样式替代的FeatureOverlay在鼠标移动到要素上时高亮显示要素。 在OL3.0中,这很好,但在OL3.6中,特征样式始终优先于FeatureOverlay样式,因此悬停高光不会显示。这种功能性的改变似乎挫败了FeatureOverlay类的作用——我也可以暂时改变feature样式 向FeatureOverlay添加要素时,是否有方法替代要素样式 定义我的KML图层:Javascript OpenLayers 3要素覆盖覆盖要素样式,javascript,openlayers-3,Javascript,Openlayers 3,我有一个使用OpenLayers 3.0编写的web地图,我正在尝试升级到OpenLayers 3.6。 FeatureOverlay的行为似乎完全不同。 我有为每个要素定义了样式的KML图层,我想使用带有样式替代的FeatureOverlay在鼠标移动到要素上时高亮显示要素。 在OL3.0中,这很好,但在OL3.6中,特征样式始终优先于FeatureOverlay样式,因此悬停高光不会显示。这种功能性的改变似乎挫败了FeatureOverlay类的作用——我也可以暂时改变feature样式 向
var layer = new ol.layer.Vector({
source: new ol.source.Vector({
url: layerUrl,
format: new ol.format.KML({
extractStyles: true
})
})
});
定义我的功能覆盖:
var hoverOverlay = new ol.FeatureOverlay({
map: map,
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: "orange",
width: 3
})
})
});
在pointermove事件中将功能添加到hoverOverlay:
hoverOverlay.addFeature(feature);
如果我在ol.format.KML构造函数中设置extractStyles:false,高亮显示会起作用,但我会丢失原始的KML样式。
我希望FeatureOverlay能够像在OL3.0中那样工作。这可能吗?
或者我应该忘记FeatureOverlay并临时更改功能的样式以突出显示它吗
谢谢
Chris在v3.7及更高版本中不再有
ol.FeatureOverlay
,因此您可以将代码准备到最新版本。因此,现在首选的方法是修改悬停/选择事件的各个功能样式?这就是我为解决这个问题所做的。我不习惯使用如此快速变化/不稳定的API!你还需要帮助吗?什么版本?我现在已经解决了这个问题,通过单独更改功能样式,但这感觉像是一个累赘。我目前坚持使用3.6,如果API不断变化,我不想跟上最新版本。我明白了,但变化并不是那么大。在v3.7及更高版本中不再有ol.FeatureOverlay
,因此,您可以将代码准备为最新版本。因此,现在首选的方法是修改悬停/选择事件的各个功能样式?这就是我为解决这个问题所做的。我不习惯使用如此快速变化/不稳定的API!你还需要帮助吗?什么版本?我现在已经解决了这个问题,通过单独更改功能样式,但这感觉像是一个累赘。我目前坚持使用3.6,如果API不断变化,我不想跟上最新版本。我明白了,但变化并不是那么大。