Merge pull request 'release: 점수표시 + 마커위치 + 클러스터 수정' (#121) from develop into main
All checks were successful
Deploy KCG / deploy (push) Successful in 1m50s
All checks were successful
Deploy KCG / deploy (push) Successful in 1m50s
This commit is contained in:
커밋
15b68bb634
@ -320,7 +320,7 @@ export function AnalysisStatsPanel({ stats, lastUpdated, isLoading, analysisMap,
|
|||||||
{item.mmsi}
|
{item.mmsi}
|
||||||
</span>
|
</span>
|
||||||
<span style={{ color, fontWeight: 700, fontSize: 10, flexShrink: 0 }}>
|
<span style={{ color, fontWeight: 700, fontSize: 10, flexShrink: 0 }}>
|
||||||
{Math.round(item.score * 100)}점
|
{item.score}점
|
||||||
</span>
|
</span>
|
||||||
<span style={{ color: '#94a3b8', fontSize: 9, flexShrink: 0 }}>▶</span>
|
<span style={{ color: '#94a3b8', fontSize: 9, flexShrink: 0 }}>▶</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -240,20 +240,24 @@ export function KoreaMap({ ships, allShips, aircraft, satellites, layers, osintF
|
|||||||
return classifyFishingZone(s.lat, s.lng).zone !== 'OUTSIDE';
|
return classifyFishingZone(s.lat, s.lng).zone !== 'OUTSIDE';
|
||||||
}).slice(0, 200).map(s => (
|
}).slice(0, 200).map(s => (
|
||||||
<Marker key={`illegal-${s.mmsi}`} longitude={s.lng} latitude={s.lat} anchor="center">
|
<Marker key={`illegal-${s.mmsi}`} longitude={s.lng} latitude={s.lat} anchor="center">
|
||||||
<div style={{
|
<div style={{ position: 'relative', pointerEvents: 'none' }}>
|
||||||
width: 20, height: 20, borderRadius: '50%',
|
{/* 강조 펄스 링 — 선박 아이콘 중앙에 오버레이 */}
|
||||||
border: '2px solid #ef4444',
|
<div style={{
|
||||||
backgroundColor: 'rgba(239, 68, 68, 0.2)',
|
width: 24, height: 24, borderRadius: '50%',
|
||||||
animation: 'pulse 2s infinite',
|
border: '2px solid #ef4444',
|
||||||
pointerEvents: 'none',
|
backgroundColor: 'rgba(239, 68, 68, 0.15)',
|
||||||
}} />
|
animation: 'pulse 2s infinite',
|
||||||
<div style={{
|
boxShadow: '0 0 8px rgba(239, 68, 68, 0.4)',
|
||||||
fontSize: 8, fontWeight: 700, color: '#ef4444',
|
}} />
|
||||||
textShadow: '0 0 2px #000, 0 0 2px #000',
|
{/* 선박명 — 아이콘 아래 */}
|
||||||
textAlign: 'center', marginTop: -2,
|
<div style={{
|
||||||
whiteSpace: 'nowrap', pointerEvents: 'none',
|
position: 'absolute', top: 26, left: '50%', transform: 'translateX(-50%)',
|
||||||
}}>
|
fontSize: 8, fontWeight: 700, color: '#ef4444',
|
||||||
{s.name || s.mmsi}
|
textShadow: '0 0 2px #000, 0 0 2px #000',
|
||||||
|
whiteSpace: 'nowrap',
|
||||||
|
}}>
|
||||||
|
{s.name || s.mmsi}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Marker>
|
</Marker>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@ -10,7 +10,7 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
def detect_group_clusters(
|
def detect_group_clusters(
|
||||||
vessel_snapshots: list[dict],
|
vessel_snapshots: list[dict],
|
||||||
spatial_eps_nm: float = 10.0,
|
spatial_eps_nm: float = 3.0,
|
||||||
time_eps_hours: float = 2.0,
|
time_eps_hours: float = 2.0,
|
||||||
min_vessels: int = 3,
|
min_vessels: int = 3,
|
||||||
) -> dict[int, list[dict]]:
|
) -> dict[int, list[dict]]:
|
||||||
|
|||||||
불러오는 중...
Reference in New Issue
Block a user