我的地图中有一个图层,用户可以更改其样式。我还可以在mouseover
上突出显示图层。问题是,如果用户选择在初始化地图后更改图层的样式,我将无法再使用内置的resetStyle
方法,因为它会将整个图层恢复为其初始样式而不是唯一的呈现用户选择的内容。现在我在具有唯一渲染的任何图层上使用setFeatureStyle
来通过一个函数来运行它,该函数根据要素属性重新创建所需的样式,但是现在在mouseout
上这些要素会提升到地图的顶部,上面的功能,它们最初放置在地下,破坏了地图的一致性。
$scope.resetHighlight = function(e) {
var layer = e.layer
if(!e.target.tblField){ //This checks if there is unique rendering
e.target.resetStyle(layer.id)
}
else{
layer = e.layer;
e.target.setFeatureStyle(layer.feature.id, uniqueStyle)
}
}
上面的代码在mouseout
上触发,如果它只是使用resetStyle方法,则图层的z值不受影响,但是如果我使用setFeatureStyle
并通过基于样式的函数运行它特征属性然后上升到顶部(最高z值)。
setFeatureStyle
方法?