更新 deckLayer 类
This commit is contained in:
@@ -40,7 +40,7 @@ const LayerControl: React.FC = () => {
|
||||
return deckLayers.some((dl: any) => dl.id === "waterflowLayer");
|
||||
}
|
||||
return false;
|
||||
}) as Layer[];
|
||||
}) as DeckLayer[];
|
||||
|
||||
// 合并所有可控制的图层
|
||||
const allLayers = [...mapLayers, ...deckFlowLayers];
|
||||
@@ -55,6 +55,7 @@ const LayerControl: React.FC = () => {
|
||||
"valves",
|
||||
"scada",
|
||||
"waterflow",
|
||||
"contourLayer",
|
||||
];
|
||||
|
||||
// 过滤并排序图层:只显示在 layerOrder 中的图层
|
||||
@@ -81,10 +82,18 @@ const LayerControl: React.FC = () => {
|
||||
if (userChangedRef.current.has(layer)) {
|
||||
visible.set(layer, prevVisibilities.get(layer) ?? true);
|
||||
} else if (layer instanceof DeckLayer) {
|
||||
// 对于 DeckLayer,获取内部 deck.gl 图层的可见性
|
||||
const waterflowVisible =
|
||||
layer.getDeckLayerVisible("waterflowLayer");
|
||||
visible.set(layer, waterflowVisible ?? true);
|
||||
// 对于 DeckLayer,需要设置内部 deck.gl 图层的可见性
|
||||
const deckLayers = layer.getDeckLayers();
|
||||
deckLayers.forEach((deckLayer: any) => {
|
||||
if (
|
||||
deckLayer &&
|
||||
(deckLayer.id === "waterflowLayer" ||
|
||||
deckLayer.id === "contourLayer")
|
||||
) {
|
||||
const visible = layer.getDeckLayerVisible(deckLayer.id);
|
||||
layer.setDeckLayerVisible(deckLayer.id, !visible);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// 对于普通 OpenLayers 图层
|
||||
visible.set(layer, layer.getVisible());
|
||||
|
||||
Reference in New Issue
Block a user