Leaflet 如何将图层控件与传单和传单提供程序一起使用

Leaflet 如何将图层控件与传单和传单提供程序一起使用,leaflet,Leaflet,我想在使用传单和传单提供程序时显示层控件。 它工作正常,但在加载时,未在控件中选择使用的贴图。 请注意,我可以选择默认贴图(当然,没有任何更改),也可以选择其他贴图(然后切换到此贴图) 为什么未在控件中选择默认贴图? 我不知道是否有问题,或者我是否没有使用适当的代码 你可以在这里看到我在plunker上的代码: 谢谢你的帮助 为什么未在控件中选择默认贴图 因为您实际上创建了两个平铺层,即使它们渲染完全相同 要使“传单图层”控件检测其一个基础贴图是否已添加到贴图(“默认”基础贴图),必须添加完全相

我想在使用传单和传单提供程序时显示层控件。 它工作正常,但在加载时,未在控件中选择使用的贴图。 请注意,我可以选择默认贴图(当然,没有任何更改),也可以选择其他贴图(然后切换到此贴图)

为什么未在控件中选择默认贴图? 我不知道是否有问题,或者我是否没有使用适当的代码

你可以在这里看到我在plunker上的代码:

谢谢你的帮助

为什么未在控件中选择默认贴图

因为您实际上创建了两个平铺层,即使它们渲染完全相同

要使“传单图层”控件检测其一个基础贴图是否已添加到贴图(“默认”基础贴图),必须添加完全相同的图层对象

var defaultBaseMap=L.tileLayer.provider('OpenTopoMap'))
defaultBaseMap.addTo(映射)
变量基本映射={
“OpenTopoMap”:defaultBaseMap,
'OpenStreetMap.France':L.tileLayer.provider('OpenStreetMap.France')
};

您可以在此处看到正确的代码:
var map = L.map('osm_map', {
    zoom: 4,
    zoomControl: false,
    minZoom: 2,
    maxZoom: 18
});
var baseMaps = {
    'OpenTopoMap': L.tileLayer.provider('OpenTopoMap'),
    'OpenStreetMap.France': L.tileLayer.provider('OpenStreetMap.France')
};
L.tileLayer.provider('OpenTopoMap').addTo(map);
L.control.layers(baseMaps).addTo(map);
L.control.zoom({position: 'topleft'}).addTo(map);
L.marker([57.150,-6.100]).addTo(map);
L.marker([57.500,-6.450]).addTo(map);
map.fitBounds([
    [57.150,-6.100], [57.500,-6.450]
]);