Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript OpenLayers 3要素覆盖覆盖要素样式_Javascript_Openlayers 3 - Fatal编程技术网

Javascript OpenLayers 3要素覆盖覆盖要素样式

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样式 向

我有一个使用OpenLayers 3.0编写的web地图,我正在尝试升级到OpenLayers 3.6。 FeatureOverlay的行为似乎完全不同。 我有为每个要素定义了样式的KML图层,我想使用带有样式替代的FeatureOverlay在鼠标移动到要素上时高亮显示要素。 在OL3.0中,这很好,但在OL3.6中,特征样式始终优先于FeatureOverlay样式,因此悬停高光不会显示。这种功能性的改变似乎挫败了FeatureOverlay类的作用——我也可以暂时改变feature样式

向FeatureOverlay添加要素时,是否有方法替代要素样式

定义我的KML图层:

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不断变化,我不想跟上最新版本。我明白了,但变化并不是那么大。