diff --git a/apps/sn/app/(map-layout)/map/page.tsx b/apps/sn/app/(map-layout)/map/page.tsx index 6105bc818..f7ceeb205 100644 --- a/apps/sn/app/(map-layout)/map/page.tsx +++ b/apps/sn/app/(map-layout)/map/page.tsx @@ -40,6 +40,7 @@ const Map = () => { const [isOpen, setIsOpen] = useState(false); // 팝업 열기/닫기 상태 const [isSearchModalOpen, setIsSearchModalOpen] = useState(false); // SearchModal 열림 상태 const [featureData, setFeatureData] = useState(null); // 선택된 피쳐 데이터 + const [showWaterDepth, setShowWaterDepth] = useState(false); // WaterDepth 표시 여부 useEffect(() => { @@ -118,6 +119,28 @@ const Map = () => { setIsSearchModalOpen(false); }; + // WaterDepth 표시 여부를 결정하는 함수 + const handleWaterDepthVisibility = useCallback((checkedIds: string[], checkedNodesData: any[]) => { + // 침수 관련 레이어 ID들 (실제 데이터에 맞게 수정 필요) + const waterDepthLayerTypes = [ + 'tb_ms_flood_dngr_map', // 침수위험지도 + 'tb_ms_sbmrg_dngr_map' // 도시침수지도 + ]; + + // 체크된 레이어 중에 침수 관련 레이어가 있는지 확인 + const hasWaterDepthLayer = checkedNodesData.some(node => + waterDepthLayerTypes.includes(node.data?.lyrTyNm) + ); + + setShowWaterDepth(hasWaterDepthLayer); + }, []); + + // 체크된 레이어 변경 처리 함수 + const handleCheckedLayersChange = useCallback((checkedIds: string[], checkedNodesData: any[]) => { + // WaterDepth 표시 여부 결정 + handleWaterDepthVisibility(checkedIds, checkedNodesData); + }, [handleWaterDepthVisibility]); + return (