传单:如何创建一个显示所有其他图层的图层组?
Leaflet: How to create a group layer that shows all other layers?
我创建了以下脚本,但它不会显示两个图层。如果我删除单个组("commerciele parkeerplaatsen" 和 "rodents")并且只离开 "both" 组它确实有效。
var CommercialParkingSpots = L.geoJson(CommercialParking,{
onEachFeature: MakePopupWindow
})/*.addTo(map)*/;
var Rodents = L.geoJson(rodents,{
onEachFeature: MakePopupWindow2
})/*.addTo(map)*/;
var both = L.layerGroup([CommercialParkingSpots, Rodents]);
var overlays = {
"commerciele parkeerplaatsen" : CommercialParkingSpots,
"rodents" : Rodents,
"both" : both,
}
L.control.layers(null, overlays).addTo(map)
Leaflet 层一次只能添加到一个实体(地图或分组层)。因此,一旦您单击 'rodents' 复选框,图层就会从 'both' 图层组中删除并添加到地图中。 'commercialparking' 层也是如此。一旦将它们都添加到地图中,'both' 图层组为空,因此当 added/removed 到地图时将不执行任何操作。它确实获得了 added/removed to/from 地图,但您不会看到任何差异,因为图层是空的。
简而言之。你想做的事是不可能的。也许类似这样的解决方案对您有用:
创建图层组:
baseLayers = {
"OpenStreetMap": lyrOSM,
"OpenTopoMap": lyrOpenTopoMap,
"Esri-WorldImagery": lyrWorldImagery
};
overlays = {
"Mountains": Mountains,
"River": River
};
L.control.layers(baseLayers, overlays).addTo(myMap);
我创建了以下脚本,但它不会显示两个图层。如果我删除单个组("commerciele parkeerplaatsen" 和 "rodents")并且只离开 "both" 组它确实有效。
var CommercialParkingSpots = L.geoJson(CommercialParking,{
onEachFeature: MakePopupWindow
})/*.addTo(map)*/;
var Rodents = L.geoJson(rodents,{
onEachFeature: MakePopupWindow2
})/*.addTo(map)*/;
var both = L.layerGroup([CommercialParkingSpots, Rodents]);
var overlays = {
"commerciele parkeerplaatsen" : CommercialParkingSpots,
"rodents" : Rodents,
"both" : both,
}
L.control.layers(null, overlays).addTo(map)
Leaflet 层一次只能添加到一个实体(地图或分组层)。因此,一旦您单击 'rodents' 复选框,图层就会从 'both' 图层组中删除并添加到地图中。 'commercialparking' 层也是如此。一旦将它们都添加到地图中,'both' 图层组为空,因此当 added/removed 到地图时将不执行任何操作。它确实获得了 added/removed to/from 地图,但您不会看到任何差异,因为图层是空的。
简而言之。你想做的事是不可能的。也许类似这样的解决方案对您有用:
创建图层组:
baseLayers = {
"OpenStreetMap": lyrOSM,
"OpenTopoMap": lyrOpenTopoMap,
"Esri-WorldImagery": lyrWorldImagery
};
overlays = {
"Mountains": Mountains,
"River": River
};
L.control.layers(baseLayers, overlays).addTo(myMap);