Skip to content

fix : 트래킹 중 현재 위치 마커/카메라 동작 개선 (실시간 갱신·튐 좌표 필터·중앙 follow) - #139

Merged
JioCoder merged 4 commits into
mainfrom
fix/tracking-location-marker
Jul 25, 2026
Merged

fix : 트래킹 중 현재 위치 마커/카메라 동작 개선 (실시간 갱신·튐 좌표 필터·중앙 follow)#139
JioCoder merged 4 commits into
mainfrom
fix/tracking-location-marker

Conversation

@JioCoder

Copy link
Copy Markdown
Contributor

개요

트래킹(자유기록·코스) 중 현재 위치 마커와 카메라 동작에서 발견된 이슈 3건을 수정합니다.

문제 상황

  1. 마커가 안 움직임 — 자유기록 중 사용자가 이동해도 초록색 현위치 마커가 초기 위치에 고정됨.
  2. 경로가 삐죽하게 그려짐 — 자유기록 경로에 GPS 튐 좌표가 그대로 찍혀, 몇 km 떨어진 지점까지 직선으로 이어져 지그재그로 그려짐.
  3. 현위치가 중앙에 안 옴 — 코스 트래킹 중 현재 위치 마커가 지도 중앙에 오지 않음.

변경 사항

1. 마커 실시간 갱신 (포어그라운드 위치 추적 추가)

  • 기존엔 마커 갱신이 백그라운드 위치 태스크에만 의존 → 이 태스크는 "항상(Always)" 위치 권한이 있어야 시작되므로, "앱 사용 중에만 허용" 권한 시 마커가 갱신되지 않았음.
  • 트래킹 중 포어그라운드 watchPositionAsync 를 추가해, 앱이 열려 있는 동안 마커·경로·GPS publish를 담당하도록 함. (백그라운드 태스크는 화면이 꺼졌을 때 담당)
  • 두 소스가 동시에 발화해도 타임스탬프 기반 중복 제거로 좌표/publish 중복 방지.

2. GPS 튐 좌표 필터

  • 직전 채택 좌표 대비 비현실적 점프(속도 ≈108km/h 초과) 또는 저정확도 큰 점프 좌표를 마커·경로·publish에서 모두 스킵.
  • 필터에 필요한 accuracy를 위치 콜백에 함께 전달.
  • 임계값은 상수(MAX_LOCATION_ACCURACY_M, MIN_JUMP_M, MAX_SPEED_MPS)로 분리해 조정 가능.

3. 트래킹 중 현위치 중앙 follow

  • 트래킹 중에는 모드 무관하게 현위치 follow 활성화 → 마커가 지도 중앙(바텀시트 위 영역 기준)에 오도록 추적.
  • 전체 코스 맞춤은 트래킹 시작 전 미리보기용으로만 동작하도록 변경.
  • 사용자가 직접 지도를 조작하면 follow 자동 해제(기존 동작 유지).

변경 파일

  • app/(tabs)/tracking.tsx
  • features/tracking/tasks/location-task.ts

✅ 체크리스트

  • TypeScript 타입체크 통과
  • Prettier 포맷 통과
  • 실기기 GPS 검증 — 자유기록 시 마커가 이동에 따라 실시간 갱신되는지
  • 실기기 GPS 검증 — 경로가 튐 없이 깔끔하게 그려지는지
  • 실기기 GPS 검증 — 코스/자유기록 트래킹 중 현위치가 중앙에 잡히고 따라오는지
  • 백그라운드 전환 시 좌표 중복/누락 없는지

참고

  • 마커는 화면 물리적 정중앙이 아니라 바텀시트를 제외한 보이는 지도 영역의 중앙에 옵니다 (mapPadding 적용, 시트에 안 가리게 하는 정상 동작).
  • 튐 좌표 필터 임계값은 실측 후 조정 가능하며, 정상 이동인데도 경로가 끊기면 MAX_SPEED_MPS를 상향하면 됩니다.

JioCoder added 3 commits July 22, 2026 10:45
백그라운드 위치 태스크는 '항상' 권한이 있어야 시작돼, '앱 사용 중만 허용'
시 마커가 초기 위치에 고정되던 문제 해결. 포어그라운드 watchPositionAsync를
추가하고 두 소스의 위치 업데이트를 타임스탬프 기반으로 중복 제거.
직전 채택 좌표 대비 비현실적 점프(속도 ≈108km/h 초과)나 저정확도 큰 점프
좌표를 마커·경로·GPS publish에서 모두 스킵하도록 필터 추가. 위치 콜백에
accuracy를 함께 전달.
기존엔 자유기록만 현위치 follow였고 코스 트래킹은 전체 코스 맞춤이라
현위치가 중앙에서 벗어났음. 트래킹 중에는 모드 무관하게 follow를 켜고,
전체 코스 맞춤은 트래킹 시작 전 미리보기용으로만 동작하도록 변경.
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

CI(Expo Install Check)의 'expo install --fix' 후 diff 검증 통과를 위해
expo 기대 버전 및 package-lock을 최신화. node 22.20.0 / npm 10.9.3 기준.
@JioCoder
JioCoder requested a review from peisonger July 22, 2026 02:17
@JioCoder
JioCoder merged commit cb8b50f into main Jul 25, 2026
2 checks passed
@JioCoder
JioCoder deleted the fix/tracking-location-marker branch July 25, 2026 06:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants