Merge pull request 'fix: 분석 오버레이 라이브 위치 사용' (#114) from fix/analysis-live-position into develop

This commit is contained in:
htlee 2026-03-20 15:17:08 +09:00
커밋 16150ceee1
2개의 변경된 파일6개의 추가작업 그리고 4개의 파일을 삭제

파일 보기

@ -555,6 +555,7 @@ function AuthenticatedApp({ user, onLogout }: AuthenticatedAppProps) {
<div className="map-panel">
<KoreaMap
ships={koreaFiltersResult.filteredShips}
allShips={koreaData.visibleShips}
aircraft={koreaData.visibleAircraft}
satellites={koreaData.satPositions}
layers={koreaLayers}

파일 보기

@ -45,6 +45,7 @@ export interface KoreaFiltersState {
interface Props {
ships: Ship[];
allShips?: Ship[];
aircraft: Aircraft[];
satellites: SatellitePosition[];
layers: Record<string, boolean>;
@ -128,7 +129,7 @@ const FILTER_I18N_KEY: Record<string, string> = {
ferryWatch: 'filters.ferryWatchMonitor',
};
export function KoreaMap({ ships, aircraft, satellites, layers, osintFeed, currentTime, koreaFilters, transshipSuspects, cableWatchSuspects, dokdoWatchSuspects, dokdoAlerts, vesselAnalysis }: Props) {
export function KoreaMap({ ships, allShips, aircraft, satellites, layers, osintFeed, currentTime, koreaFilters, transshipSuspects, cableWatchSuspects, dokdoWatchSuspects, dokdoAlerts, vesselAnalysis }: Props) {
const { t } = useTranslation();
const mapRef = useRef<MapRef>(null);
const [infra, setInfra] = useState<PowerFacility[]>([]);
@ -208,8 +209,8 @@ export function KoreaMap({ ships, aircraft, satellites, layers, osintFeed, curre
</Source>
{layers.ships && <ShipLayer ships={ships} militaryOnly={layers.militaryOnly} />}
{/* Illegal fishing vessel markers */}
{koreaFilters.illegalFishing && ships.filter(s => {
{/* Illegal fishing vessel markers — allShips(라이브 위치) 기반 */}
{koreaFilters.illegalFishing && (allShips ?? ships).filter(s => {
const mtCat = getMarineTrafficCategory(s.typecode, s.category);
if (mtCat !== 'fishing' || s.flag === 'KR') return false;
return classifyFishingZone(s.lat, s.lng).zone !== 'OUTSIDE';
@ -303,7 +304,7 @@ export function KoreaMap({ ships, aircraft, satellites, layers, osintFeed, curre
{layers.cnFishing && <ChineseFishingOverlay ships={ships} analysisMap={vesselAnalysis?.analysisMap} />}
{vesselAnalysis && vesselAnalysis.analysisMap.size > 0 && (
<AnalysisOverlay
ships={ships}
ships={allShips ?? ships}
analysisMap={vesselAnalysis.analysisMap}
clusters={vesselAnalysis.clusters}
activeFilter={