首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Leaflet层控制:排序

Leaflet层控制:排序
EN

Stack Overflow用户
提问于 2016-05-24 22:23:07
回答 1查看 1.4K关注 0票数 2

我们使用Leaflet中的标准"layer control"。实例化过程如下:

代码语言:javascript
复制
this.controls[id] = L.control.layers({}, {}, {
   collapsed: false
});

层是以随机顺序动态添加的(取决于xhr请求何时完成)。但是,leaflet隐含似乎使用相应层的_leaflet_id在layer控件中排序,因此我们的层以随机顺序出现。

有没有办法告诉leaflet在控件中显示图层的顺序?例如,在调用.addOverlay.addBaseLayer方法时传递一些额外的参数?

Leaflet版本为1.0-dev

EN

回答 1

Stack Overflow用户

发布于 2016-05-25 14:42:15

我找到了一些解决这个问题的方法。然而,这不是一个干净的解决方案,所以请随意发布更好的答案。

Leaflet使用layer对象的_leaflet_id进行排序。因此,首先创建的层将始终位于顶部。为了对图层进行排序,您必须将实际图层包装在图层/功能组中。

代码语言:javascript
复制
|- dummy layer group
   |- some dummy geojson layer
   |- your actual layer (will be added later)

从程序上讲:

代码语言:javascript
复制
var oFeatureGroup = L.featureGroup([
    L.geoJson({
        "type": "FeatureCollection",
        "features": []
    })
]);

然后我们做一些异步加载,一旦我们准备好了,我们就将层添加到-或多或少空-层组中:

代码语言:javascript
复制
oFeatureGroup.addLayer(oMyMagicAsyncLoadedLayer)

然后我们可以将层添加到layer控件中,它将被排序为"expected“,其中顺序取决于创建oFeatureGroup层的顺序,而不是oMyMagicAsyncLoadedLayer

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37416404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档