diff --git a/frontend/src/components/AgentMapVisualizer.tsx b/frontend/src/components/AgentMapVisualizer.tsx index 8ffc3940..7141e660 100644 --- a/frontend/src/components/AgentMapVisualizer.tsx +++ b/frontend/src/components/AgentMapVisualizer.tsx @@ -362,7 +362,10 @@ export default function AgentMapVisualizer({ const pixel = competitorPixels[comp.id]; if (!pixel) return null; const isFranchise = comp.is_franchise; - const pinColor = isFranchise ? '#fb565b' : '#ffba00'; + // 사용자 피드백 (2026-05-05): 자사 브랜드만 red, 경쟁업체 (프랜차이즈/개인점) 모두 yellow. + // own_brand category 는 AbmTab 의 sameBrandLocations 에서 부여. + const isOwnBrand = comp.category === 'own_brand'; + const pinColor = isOwnBrand ? '#fb565b' : '#ffba00'; const isSelected = selectedCompetitorId === comp.id; // 가장 가까운 공실 spot 까지 거리 (Haversine, m) @@ -388,9 +391,7 @@ export default function AgentMapVisualizer({ return (
- + {comp.name}
)}
@@ -525,7 +522,7 @@ export default function AgentMapVisualizer({ strokeWidth="2" /> - 경쟁 프랜차이즈 + 자사 매장
@@ -536,7 +533,7 @@ export default function AgentMapVisualizer({ strokeWidth="2" /> - 경쟁 개인점 + 경쟁업체
diff --git a/frontend/src/components/SimulationResult/dashboard/tabs/AbmTab.tsx b/frontend/src/components/SimulationResult/dashboard/tabs/AbmTab.tsx index 40b0f548..d262b3fc 100644 --- a/frontend/src/components/SimulationResult/dashboard/tabs/AbmTab.tsx +++ b/frontend/src/components/SimulationResult/dashboard/tabs/AbmTab.tsx @@ -274,8 +274,37 @@ export function AbmTab({ simResult, brandName, businessType, storeArea }: Props) {/* 지도 / ABM 뷰 — 퐁당퐁당: AbmGroup(card white) → 여기 panel(secondary gray) → 안 inner cards(card white). 사용자 피드백 (2026-05-05): 제일 밖 white. */} {mode === 'map' ? ( -
-
+
+ {/* 시뮬레이션 안내 — 첫 진입 시 컨텍스트. 사용자 피드백 (2026-05-05). */} +
+
+ +
+
+

+ ABM 시뮬레이터 — 마포 5,000 페르소나 행동 시뮬 +

+

+ 지도에서 공실 spot (초록) 클릭 → + 시나리오 (날씨/요일/임대료) 설정 + → 시뮬 실행. 5,000 가상 에이전트가 마포 전역에서 이동·소비 패턴 시뮬 → 선택 spot 의 + 일 방문/매출/잠식 추정. 여러 spot 큐 누적 → 순차 실행 (우하단 패널). +

+

+ 범례:{' '} + + ▲ 자사 매장 + + {' · '} + + ▲ 경쟁업체 + + {' · '} + ● 공실 매물 +

+
+
+

Multi-Agent Geospatial Recommendations @@ -284,9 +313,9 @@ export function AbmTab({ simResult, brandName, businessType, storeArea }: Props) AI AGENT TARGETING · {locations.length} VACANCY · {competitors.length} COMP

-
+
0 ? locations : undefined} competitors={competitors} onSpotClick={handleAgentMapSpotClick}