Files
GhiVideo/docs/history/2026-06-29_1228_좌표반경-마커-측점값숨김.md
T
b23042andClaude Opus 4.8 e9052143d7 feat: 스테이션바 측점 정확도 개선 + 영상 컨트롤 UI 통합 + 종합 기술문서
스테이션바/측점(체이니지)
- 역 재진입 마커 누락 수정: 측점기준 탐지에 좌표근접(pxPassesTo) 합집합 보강(중복 24px 제거)
- kmExists 판정: 좌표 반경만으로 잡힌 통과는 측점값 라벨/검색에서 제외(마커 동그라미는 유지)
- 측점값 라벨 겹침 숨김(좌측 우선), 동일항목 브래킷 클러스터
- 측점 검색 순환(통과방향 다음→끝에서 처음), 마커 기준 후보 산출, 입력값 유지/blur 삭제
- 연속 체이니지 수직투영 유틸 분리(client/src/utils/chainage.ts), Minimap 컴포넌트 추가

영상 컨트롤 UI
- 선형/드론궤적/좌측패널 토글을 재생바로 통합(settingsStore 공유·persist)
- 드론 GPS·고도 HUD 상시 표시, 경로표고·투명도 항상 노출, 겹침제외 버튼 숨김
- 재생바 요소 재배치(좌측패널→선형→드론궤적→드론위치정보→시설등급), 활성색 amber 통일

문서/도구
- 종합 기술명세서(인계+특허 기초) md/html/pdf 3종, UI개선 보고서 3종
- md→html→pdf 변환 스크립트(scripts/md2docs.sh) + 스타일(docs/assets/report.css)
- 작업 히스토리 다수 추가(docs/history/)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 14:56:27 +09:00

1.6 KiB

좌표 반경으로만 잡힌 마커의 측점값 라벨/검색 제외

소요 시간: 약 8분 Context 사용량: input ~420k / output ~28k tokens

결론

역 마커가 좌표 반경(pxPassesTo)으로만 잡혀 그 위치에 실제 측점값이 존재하지 않는 경우, 측점값 라벨을 숨기고 검색 대상에서도 제외. 마커(동그라미)는 유지.

판정 (kmExists)

  • 각 통과의 실제 측점 = 그 통과 프레임의 연속 chain(p.km, 좌표탐지) / 측점기준 탐지는 targetM(=stationKmVal).
  • 표시 측점값 = stationKmVal(역 좌표 투영).
  • kmExists = stationKmVal==null || |p.km - stationKmVal| <= stationTolerance(기본 20m)
    • 측점기준 통과 → 일치 → true
    • 좌표 반경만으로 잡힌 통과(측점 동떨어짐) → false

변경 내용

  • client/src/stationbar/StationBar.tsx
    • StructMarkkmExists?: boolean 추가.
    • structureMarks 두 경로(storeStructures / POI 폴백) push 시 kmExists 계산.
    • handleJumpToMileage 마커 후보 필터에 m.kmExists !== false 추가(값 없는 마커로는 검색 점프 안 함).
  • client/src/stationbar/components/Timeline/Timeline.tsx
    • 측점값 라벨 표시 루프에서 s.kmExists === false면 라벨 생략(동그라미·이름 라벨은 유지).

검증

  • tsc + vite build 통과(node 20). client/dist 재빌드(12:27).

참고

  • 측점기준 통과는 km=targetM=stationKmVal 로 동일 → 항상 kmExists=true(정상 측점은 영향 없음).
  • 마커 동그라미/브래킷/역명 라벨은 그대로. 숨기는 것은 '측점값(10m)' 라벨과 그 값으로의 검색뿐.