Leaflet 如何防止传单连接来自多个基本层的属性?

Leaflet 如何防止传单连接来自多个基本层的属性?,leaflet,Leaflet,我有一个相当基本的地图使用传单,有两个基本层,可以选择使用标准层选择控件。每个层都有自己的属性字符串,显示在右下角的常用位置。下面是我正在使用的代码的简化版本,作为演示: <script> var zoomLevel = 6; var lat = 54.00366; var lon = -2.547855; var OSM = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/

我有一个相当基本的地图使用传单,有两个基本层,可以选择使用标准层选择控件。每个层都有自己的属性字符串,显示在右下角的常用位置。下面是我正在使用的代码的简化版本,作为演示:

 <script>

    var zoomLevel = 6;
    var lat = 54.00366;
    var lon = -2.547855;
    
    var OSM = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
            maxZoom: 18,
            attribution: 'this is the string for OSM, and should only show when OSM is selected'
    });

    var Esri_WorldImagery = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', {
            maxZoom: 18,    
            attribution: 'this is the string for Esri, and should only show when Esri is selected'
    });
    
    var baseMaps = {
        "Satellite": Esri_WorldImagery,
        "Open StreetMap": OSM
    
    };

    var map = L.map('map',{ 
        dragging: !L.Browser.mobile,
        center: [lat, lon],
        zoom: 6, 
        layers: [Esri_WorldImagery,OSM]
    });
    L.control.layers(baseMaps).addTo(map);
    
</script>

var zoomLevel=6;
var lat=54.00366;
var-lon=-2.547855;
var OSM=L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
maxZoom:18,
属性:“这是OSM的字符串,仅在选择OSM时显示”
});
var Esri_WorldImages=L.Tillelayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z} /{y}/{x}'{
maxZoom:18,
属性:“这是Esri的字符串,仅在选择Esri时显示”
});
变量基本映射={
“卫星”:Esri_WorldImages,
“开放式街道地图”:OSM
};
var map=L.map('map',{
正在拖动:!L.Browser.mobile,
中心:[纬度,经度],
缩放:6,
图层:[Esri_WorldImages,OSM]
});
L.控制。图层(底图)。添加到(地图);
我遇到的问题是,当映射第一次加载时,两个属性字符串被连接并显示为单个字符串。一旦实际选择了任一层,显示的唯一属性字符串就是应用于该层的属性字符串

这是我的服务器上的测试映射副本:

如果打开该页面,您将看到属性字符串最初显示为

这是Esri的字符串,仅在选择Esri时显示,这是OSM的字符串,仅在选择OSM时显示

这是不正确的-它应该只在初始加载时显示OSM属性,因为默认的底图是OSM

选择任一底图,该字符串将成为该图层的正确字符串

我怎样才能阻止它那样做?如何使初始属性字符串成为默认层的正确属性字符串

(这很重要的原因是,当只有两个底图时,这可能不是什么大问题,但当有多个底图时——我有一个网站确实使用了多个底图——那么初始连接的属性字符串会在几行上运行,并在地图底部占用太多空间)


编辑:我刚刚发现了两件事。首先,如果字符串是相同的,它们不会被连接起来——只显示一次。其次,当它们连接在一起时,在它们之间插入一个逗号。因此,这显然是传单上的故意行为,而不是虫子或抓到的。但是,如果是这样,肯定会有一个设置来覆盖它,因为在很多情况下,这种行为是不合适的。我在文档中遗漏了什么吗?

好的,我想出来了。对不起,在询问之前应该多做些实验。解决方案很简单-仅在初始贴图选项中包含一个(默认)层,即:

layers: [Esri_WorldImagery,OSM]
应该是

layers: [OSM]

只加载一个默认图层,并且只显示该图层的属性。

非常感谢分享经验和想法-太棒了!!!你帮了我很多!!