如何将样式重置为唯一渲染Leaflet js?

时间:2016-04-06 12:58:44

标签: javascript angularjs leaflet gis arcgis-js-api

我的地图中有一个图层,用户可以更改其样式。我还可以在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值)。

  • 是否有一种方法可以恢复到之后设置的样式 初始化?
  • 我可以在传单层对象或要素对象上找到 在页面加载时分层当前样式而不是其原始样式?
  • 如何在使用时阻止图层更改其z值 setFeatureStyle方法?

0 个答案:

没有答案