release: 2026-04-17 (320건 커밋) #190
@ -1,10 +1,10 @@
|
||||
import { useState, useEffect, useRef } from 'react';
|
||||
import { fetchPredictionAnalyses } from '@tabs/prediction/services/predictionApi';
|
||||
import type { PredictionAnalysis } from '@tabs/prediction/services/predictionApi';
|
||||
import { fetchHnsAnalyses } from '@tabs/hns/services/hnsApi';
|
||||
import type { HnsAnalysisItem } from '@tabs/hns/services/hnsApi';
|
||||
import { fetchRescueOps } from '@tabs/rescue/services/rescueApi';
|
||||
import type { RescueOpsItem } from '@tabs/rescue/services/rescueApi';
|
||||
import { fetchPredictionAnalyses } from '@components/prediction/services/predictionApi';
|
||||
import type { PredictionAnalysis } from '@interfaces/prediction/PredictionInterface';
|
||||
import { fetchHnsAnalyses } from '@components/hns/services/hnsApi';
|
||||
import type { HnsAnalysisItem } from '@interfaces/hns/HnsInterface';
|
||||
import { fetchRescueOps } from '@components/rescue/services/rescueApi';
|
||||
import type { RescueOpsItem } from '@interfaces/rescue/RescueInterface';
|
||||
|
||||
// ── 타입 정의 ──────────────────────────────────────────
|
||||
export type AnalysisModalType = 'oil' | 'hns' | 'rescue';
|
||||
|
||||
@ -39,7 +39,6 @@ import {
|
||||
} from '../utils/dischargeZoneData';
|
||||
import { useMapStore } from '@common/store/mapStore';
|
||||
import { FlyToController } from './contents/FlyToController';
|
||||
import { SplitPanelContent } from './contents/SplitPanelContent';
|
||||
import { VesselPopupPanel } from './contents/VesselPopupPanel';
|
||||
import { IncidentPopupContent } from './contents/IncidentPopupContent';
|
||||
import { VesselDetailModal } from './contents/VesselDetailModal';
|
||||
|
||||
@ -5,18 +5,11 @@
|
||||
* - MapView와 동일한 BitmapLayer (캔버스 히트맵) + ScatterplotLayer (AEGL 원) 생성
|
||||
*/
|
||||
import { BitmapLayer, ScatterplotLayer } from '@deck.gl/layers';
|
||||
import { computeDispersion } from '@tabs/hns/utils/dispersionEngine';
|
||||
import { getSubstanceToxicity } from '@tabs/hns/utils/toxicityData';
|
||||
import { hexToRgba } from '@common/components/map/mapUtils';
|
||||
import type { HnsAnalysisItem } from '@tabs/hns/services/hnsApi';
|
||||
import type {
|
||||
MeteoParams,
|
||||
SourceParams,
|
||||
SimParams,
|
||||
DispersionModel,
|
||||
AlgorithmType,
|
||||
StabilityClass,
|
||||
} from '@tabs/hns/utils/dispersionTypes';
|
||||
import { computeDispersion } from '@components/hns/utils/dispersionEngine';
|
||||
import { getSubstanceToxicity } from '@components/hns/utils/toxicityData';
|
||||
import { hexToRgba } from '@components/common/map/mapUtils';
|
||||
import type { HnsAnalysisItem, MeteoParams, SourceParams, SimParams } from '@interfaces/hns/HnsInterface';
|
||||
import type { DispersionModel, AlgorithmType, StabilityClass } from '@types/hns/HnsType';
|
||||
|
||||
// MapView와 동일한 색상 정지점
|
||||
const COLOR_STOPS: [number, number, number, number][] = [
|
||||
|
||||
@ -4,6 +4,7 @@ import type {
|
||||
PredictionDetail,
|
||||
BacktrackResult,
|
||||
TrajectoryResponse,
|
||||
OilSpillSummaryResponse,
|
||||
SensitiveResourceCategory,
|
||||
SensitiveResourceFeatureCollection,
|
||||
SpreadParticlesGeojson,
|
||||
@ -63,6 +64,17 @@ export const fetchAnalysisTrajectory = async (
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export const fetchOilSpillSummary = async (
|
||||
acdntSn: number,
|
||||
predRunSn?: number,
|
||||
): Promise<OilSpillSummaryResponse> => {
|
||||
const response = await api.get<OilSpillSummaryResponse>(
|
||||
`/prediction/analyses/${acdntSn}/oil-summary`,
|
||||
predRunSn != null ? { params: { predRunSn } } : undefined,
|
||||
);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export const fetchSensitiveResources = async (
|
||||
acdntSn: number,
|
||||
): Promise<SensitiveResourceCategory[]> => {
|
||||
|
||||
@ -216,29 +216,6 @@ export interface OilSpillSummaryResponse {
|
||||
byModel: Record<string, OilSpillSummary>;
|
||||
}
|
||||
|
||||
export const fetchAnalysisTrajectory = async (
|
||||
acdntSn: number,
|
||||
predRunSn?: number,
|
||||
): Promise<TrajectoryResponse> => {
|
||||
const response = await api.get<TrajectoryResponse>(
|
||||
`/prediction/analyses/${acdntSn}/trajectory`,
|
||||
predRunSn != null ? { params: { predRunSn } } : undefined,
|
||||
);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export const fetchOilSpillSummary = async (
|
||||
acdntSn: number,
|
||||
predRunSn?: number,
|
||||
): Promise<OilSpillSummaryResponse> => {
|
||||
const response = await api.get<OilSpillSummaryResponse>(
|
||||
`/prediction/analyses/${acdntSn}/oil-summary`,
|
||||
predRunSn != null ? { params: { predRunSn } } : undefined,
|
||||
);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
|
||||
export interface SensitiveResourceCategory {
|
||||
category: string;
|
||||
count: number;
|
||||
|
||||
불러오는 중...
Reference in New Issue
Block a user