# 2026-07-15 측점 검색 재설계 — 부호 교차(zero-crossing) 방식

**소요 시간**: 15분
**Context 사용량**: 작업분 input 250k / output 8k tokens · 누적 input 20600k / output 324k tokens

## 제보

1355 검색이 계속 오차 발생 + 두 번째 1355 지점으로 순환이 안 됨.

## 원인 (실데이터 재현으로 확정)

±20m '허용 창' 그룹핑 방식의 구조적 한계:
- 호버·저속 구간에서 창이 128초까지 늘어나며 **서로 다른 통과들이 한 창으로 병합**
  (1355 실제 통과 3곳 — 201.0s/327.2s/334.5s — 이 1곳으로 뭉개짐 → 순환 불가)
- 창 안 '최적점' 선택이 흔들리며 착지 오차 유발

## 수정 — StationBar.tsx (전 구간 검색)

- **부호 교차 방식**: 배지값(vc)이 검색값을 가로지르는 모든 순간을 각각의 통과로
  (교차 시각 = 선형보간 — 표본 오차 제거)
- 노선밖(off>60)·표본 불연속 구간 제외, 3초 이내 다중 교차(채터)는 병합
- 교차가 전혀 없는 값(도달만 못 함)은 최근접 지점 폴백(TOL 이내)
- 진단 로그: `[검색] 1355m: 통과 3곳 — 201.0s, 327.2s, 334.5s`

## 검증 (경로 1-1, lookahead 240)

| 검색 | 통과 |
|------|------|
| 1355 | **3곳** (201.0/327.2/334.5s) — Enter 순환으로 모두 방문 가능 |
| 1370 | 1곳 (336.9s) — 호버 1360 정체는 통과로 오인 안 함 |
| 2000 | 1곳 (441.6s) |

## 잔여 오차 안내

- 착지 후 배지 ±1~2m 는 로그 해상도(10Hz=0.8m)·표시 반올림(1m)에 따른
  표시 한계 — 데이터 정밀도상 최선

## 반영

- 웹(index-D3EiCnLq.js, 07.15 14:04) + 포터블(StationPlayer-Portable) 갱신
