fix(prediction): geo.ts 중복 함수 제거 및 null 좌표 참조 오류 수정
This commit is contained in:
부모
a3b2787ba0
커밋
da077bf884
@ -299,23 +299,6 @@ export function pointInPolygon(
|
|||||||
return inside
|
return inside
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 다각형 면적 (km²) — Shoelace formula, 구면 보정 포함 */
|
|
||||||
export function polygonAreaKm2(polygon: { lat: number; lon: number }[]): number {
|
|
||||||
if (polygon.length < 3) return 0
|
|
||||||
const n = polygon.length
|
|
||||||
const latCenter = polygon.reduce((s, p) => s + p.lat, 0) / n
|
|
||||||
const cosLat = Math.cos(latCenter * DEG2RAD)
|
|
||||||
let area = 0
|
|
||||||
for (let i = 0; i < n; i++) {
|
|
||||||
const j = (i + 1) % n
|
|
||||||
const x1 = polygon[i].lon * cosLat * EARTH_RADIUS * DEG2RAD / 1000
|
|
||||||
const y1 = polygon[i].lat * EARTH_RADIUS * DEG2RAD / 1000
|
|
||||||
const x2 = polygon[j].lon * cosLat * EARTH_RADIUS * DEG2RAD / 1000
|
|
||||||
const y2 = polygon[j].lat * EARTH_RADIUS * DEG2RAD / 1000
|
|
||||||
area += x1 * y2 - x2 * y1
|
|
||||||
}
|
|
||||||
return Math.abs(area) / 2
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 원 면적 (km²) */
|
/** 원 면적 (km²) */
|
||||||
export function circleAreaKm2(radiusM: number): number {
|
export function circleAreaKm2(radiusM: number): number {
|
||||||
|
|||||||
@ -207,9 +207,10 @@ export function OilSpillView() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (activeSubTab === 'analysis' && oilTrajectory.length === 0 && !selectedAnalysis) {
|
if (activeSubTab === 'analysis' && oilTrajectory.length === 0 && !selectedAnalysis) {
|
||||||
const models = Array.from(selectedModels.size > 0 ? selectedModels : new Set<PredictionModel>(['OpenDrift']))
|
const models = Array.from(selectedModels.size > 0 ? selectedModels : new Set<PredictionModel>(['OpenDrift']))
|
||||||
const demoTrajectory = generateDemoTrajectory(incidentCoord, models, predictionTime)
|
const coord = incidentCoord ?? { lat: 37.39, lon: 126.64 }
|
||||||
|
const demoTrajectory = generateDemoTrajectory(coord, models, predictionTime)
|
||||||
setOilTrajectory(demoTrajectory)
|
setOilTrajectory(demoTrajectory)
|
||||||
const demoBooms = generateAIBoomLines(demoTrajectory, incidentCoord, algorithmSettings)
|
const demoBooms = generateAIBoomLines(demoTrajectory, coord, algorithmSettings)
|
||||||
setBoomLines(demoBooms)
|
setBoomLines(demoBooms)
|
||||||
setSensitiveResources(DEMO_SENSITIVE_RESOURCES)
|
setSensitiveResources(DEMO_SENSITIVE_RESOURCES)
|
||||||
}
|
}
|
||||||
|
|||||||
불러오는 중...
Reference in New Issue
Block a user