OpenLayers 3 FeatureOverlay覆盖功能样式

时间:2015-06-26 11:26:58

标签: javascript openlayers-3

我有一个使用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并暂时更改功能的样式以突出显示它?

谢谢,

克里斯

0 个答案:

没有答案