我有一个使用OpenLayers 3.0编写的Web地图,我正在尝试升级到OpenLayers 3.6。 FeatureOverlay似乎表现完全不同。 我有KML图层,其中为每个要素定义了样式,我想使用带有样式覆盖的FeatureOverlay,以便在鼠标移过它们时突出显示要素。 在OL3.0中,这工作正常,但在OL3.6中,功能样式始终优先于FeatureOverlay样式,因此悬停突出显示不会显示。这个功能的改变似乎打败了FeatureOverlay类 - 我可能只是暂时改变了这个功能。
在向FeatureOverlay添加要素时,有没有办法覆盖要素样式?
定义我的KML图层:
var layer = new ol.layer.Vector({
source: new ol.source.Vector({
url: layerUrl,
format: new ol.format.KML({
extractStyles: true
})
})
});
定义我的FeatureOverlay:
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并暂时更改功能的样式以突出显示它?
谢谢,
克里斯