在Leaflet LayerGroup中为Blank TileLayer添加选项

Mat*_*dge 5 javascript leaflet

我有一个BaseMaps集合,我希望用户能够选择:

var BaseMaps = {
    // TODO blank tileLayer

    "Default": L.tileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', {
        id: 'examples.map-20v6611k',
        noWrap: true
    }),

    "ESRI Roads": L.tileLayer('http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}', {
        noWrap: true
    })
};
Run Code Online (Sandbox Code Playgroud)

这些图层将添加到我的地图的LayerGroup控件中,L.control.layers(BaseMaps).addTo(map)并按预期工作

问题是我希望用户能够从同一个控件中选择一个空白切片图层,有效地关闭基本地图,但是null或空白的tileLayer via L.tileLayer()不起作用,因为这会打破Leaflet功能

是否有一种干净的方法可以为此控件添加空白的tileLayer选项?挖掘API和各种github /论坛问题并没有浮出水面.

提前致谢!

iH8*_*iH8 16

提供一个空字符串作为url参数适用于我,并不会抛出任何错误:

var base = {
    'Empty': L.tileLayer(''),
    'OpenStreetMap': L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        'attribution': 'Map data © OpenStreetMap contributors'
    })
};
Run Code Online (Sandbox Code Playgroud)

关于Plunker的工作示例:http://plnkr.co/edit/v7sICO?p = preview

  • 你可以在`leaflet-container`类上使用CSS来做到这一点,例如:`.leaflet-container {background-color:#000}` (4认同)