所以我有一个OpenStreetMap地图(带有Leaflet),并放了一个欧洲javascript层(我在javascript中插入了ID以区分每个国家)。当我用鼠标悬停在每个国家时,都会突出显示。当我单击一个国家时,它会自动放大。
我想,当我单击国家时,国家的图层消失(根据缩放级别)(但是其他国家必须保持“分层”。(知道之后,我会尝试在只会在国家/地区图层消失的情况下显示的国家/地区上显示标记,并通过单击该标记来放大它。)
Ps:我现在按照这个网站做的事情: https://leafletjs.com/examples/choropleth/
我的代码: https://jsfiddle.net/Gio687351/3bwsnu8z/2/
map.on('zoomend ', function(e) {
if (map.getZoom() < 3) {
map.fitBounds(layer.getBounds())
map.removeLayer(Europe-Layer.js)
map.setStyle({
'fillOpacity': '0.7'
});
} else if (map.getZoom() >= 3) {
map.fitBounds(layer.getBounds())
map.addLayer(statesData);
map.setStyle({
'fillOpacity': '0.0'
});
}
});
答案 0 :(得分:0)
可以通过fill-opacity
和opacity
style properties来管理层可见性,如下所示:
function toggleLayerVisibility(map, layer) {
if (selectedLayerId) {
geojson.resetStyle(layer);
selectedLayerId = null;
} else {
//hide a layer
layer.setStyle({
opacity: 0,
fillOpacity: 0.0
});
selectedLayerId = layer._leaflet_id; //save identifier of a selected layer
}
}
说明:
opacity: 0
和fillOpacity: 0
隐藏图层selectedLayerId
用于存储当前选定图层的标识符在提供的示例中,following demo演示了如何隐藏单击的图层