From d518b4179cbbdebeb0907651ca33cd30ef176501 Mon Sep 17 00:00:00 2001 From: seo Date: Fri, 3 Jul 2026 10:58:54 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B8=B0=EB=A1=9D=20=EC=8B=9C=EA=B0=84=20?= =?UTF-8?q?=EC=8A=AC=EB=9D=BC=EC=9D=B4=EB=8D=94=20=ED=91=9C=EC=8B=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- js/main.js | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6f6c236..007ecc6 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Naver Map에는 단일 Polyline 중심의 부드러운 경로선을 먼저 그 집 판정은 설정된 집 좌표를 중심점으로 한 50m 반경을 기준으로 합니다. GPS 튐 보정이 켜져 있으면 집 주변 1.2km 안의 지점은 집 주변 GPS 흔들림으로 흡수하고, 외출은 연속된 외부 지점이 5분 이상 지속될 때만 세션으로 확정합니다. 외부 지점 사이의 공백이 2시간을 넘으면 해당 구간은 알 수 없는 구간으로 보고 외출 지속시간에 합산하지 않습니다. 여러 번 나갔다 돌아온 경우 집 체류 시간은 합산하고, 외출은 출발/복귀 단위의 세션으로 따로 보여줍니다. -기록 시간 슬라이더를 움직이면 선택 마커가 해당 시점으로 이동하고, 선택 시각과 추정 속도를 지도 아래에 표시합니다. 경로 재생도 같은 선택 마커를 사용합니다. 80m 반경 안에서 10분 이상 머문 구간은 체류 지점 마커로 묶어 표시하며, 클릭 시 체류 시간과 시작/종료 시각을 확인할 수 있습니다. +기록 시간 슬라이더를 움직이면 선택 마커가 해당 시점으로 이동하고, 지도 아래에는 `월. 일. 시간` 형식의 선택 시각만 간결하게 표시합니다. 경로 재생도 같은 선택 마커를 사용합니다. 80m 반경 안에서 10분 이상 머문 구간은 체류 지점 마커로 묶어 표시하며, 클릭 시 체류 시간과 시작/종료 시각을 확인할 수 있습니다. 라이브 위치에는 설정된 집 50m 원, GPS 정확도 원, 500m/1km 현재 위치 반경 원을 함께 표시합니다. `Naver 지도` 버튼은 히스토리 선택 지점 또는 현재 위치를 Naver 지도에서 바로 엽니다. diff --git a/js/main.js b/js/main.js index c1d9a53..0aec7c1 100644 --- a/js/main.js +++ b/js/main.js @@ -1492,6 +1492,17 @@ function formatDateTime(value) { }); } +function formatTimelineTime(value) { + const ts = toTimestamp(value); + if (!ts) return '-'; + return new Date(ts).toLocaleString(langCode === 'ko' ? 'ko-KR' : 'en-US', { + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + }); +} + function speedColor(kmh) { return speedBucket(kmh).color; } @@ -2001,10 +2012,7 @@ function moveSelectedHistoryPoint(index, pan = false, syncSlider = true) { const value = document.getElementById('historyTimelineValue'); if (value) { - const prev = points[Math.max(0, safeIndex - 1)]; - const seconds = safeIndex > 0 ? Math.max(1, (toTimestamp(point.time) - toTimestamp(prev.time)) / 1000) : 0; - const kmh = safeIndex > 0 ? distanceMeters(prev, point) / seconds * 3.6 : 0; - value.textContent = `${formatDateTime(point.time)} · ${speedLabel(kmh)} ${formatSpeed(kmh)}`; + value.textContent = formatTimelineTime(point.time); } if (syncSlider) { const slider = document.getElementById('historyTimelineSlider');