GPX 러닝 경로 영상 만들기
삼성헬스·가민에서 받은 GPX 를 올리면 달린 길이 그려지는 영상이 됩니다.
GPX 파일을 여기에 놓아주세요
클릭해서 파일을 고르셔도 됩니다.
파일은 서버로 전송되지 않고 브라우저 안에서만 열립니다.
📱 삼성헬스에서 받는 법
- 1. 삼성헬스 앱에서 해당 운동 기록을 엽니다.
- 2. 오른쪽 위 더보기 ⋮ 를 누릅니다.
- 3. GPX 파일로 경로 공유 를 선택합니다.
⌚ 가민 커넥트에서 받는 법
- 1. 가민 커넥트에서 활동 상세 화면을 엽니다.
- 2. 오른쪽 위 톱니바퀴 ⚙ 를 누릅니다.
- 3. GPX로 내보내기 를 선택합니다.
스트라바·러닝앱 등 GPX 를 내보낼 수 있는 앱이면 대부분 동작합니다. 심박·케이던스가 담긴 파일은 오버레이가 함께 표시됩니다.
내 러닝 경로
스페이스바로도 재생·정지할 수 있습니다.
읽어들인 기록
거리
— km
시간
—
평균 페이스
—
평균 심박
— bpm
케이던스
— spm
상승 고도
— m
🖼️ 화면 비율
🎨 배경
🖍️ 경로 색
파랑 → 노랑 → 빨강 순으로, 페이스는 느림→빠름, 심박은 낮음→높음입니다. 둘 다 이 기록 안에서의 상대적인 값이며 심박존이 아닙니다 — 존을 나누려면 개인 최대 심박이 필요한데 GPX 에는 들어 있지 않습니다. 양 끝 5%는 이상치로 보고 색 범위에서 제외합니다.
단색으로 쓸 색
고르면 단색 모드로 바뀝니다.
⏱️ 재생 길이
📊 영상에 표시할 지표 0/4
자리가 네 귀퉁이라 최대 4개까지 켜집니다. 전부 끄면 경로만 남습니다.
경로 위에 구간 번호를 찍습니다. 러너가 그 지점을 지날 때 잠깐 커졌다 가라앉습니다.
🎥 동영상으로 저장
지금 설정 그대로 MP4 파일이 만들어집니다. 인스타그램 릴스·유튜브 쇼츠에 바로 올릴 수 있어요.
이 도구는 이렇게 동작합니다
GPX 안에는 무엇이 들어 있나
GPX 는 GPS 기록을 담는 XML 형식입니다. 핵심은 trkpt 라는
태그로, 위도·경도 한 쌍이 시간 순서대로 늘어서 있습니다. 러닝 워치나 폰은 보통 1초에 한 번 좌표를 남기므로,
36분을 달렸다면 약 2,100개의 점이 쌓입니다. 여기에 고도(ele),
시각(time),
그리고 기기에 따라 심박·케이던스가 확장 태그로 붙습니다.
이 도구는 그 점들을 웹 메르카토르 좌표로 변환해 화면 크기에 맞게 펼친 뒤, 시간 순서대로 이어 그립니다. 모든 처리는 브라우저 안에서 일어나고 파일은 어디로도 올라가지 않습니다.
거리를 좌표로 직접 계산하지 않는 이유
좌표를 순서대로 이어 하버사인 공식으로 거리를 더하는 것이 교과서적인 방법입니다. 그런데 실제 삼성헬스 기록으로 해보면 5.85km 가 나옵니다. 같은 운동을 앱은 6.07km 로 표시합니다. 3.6% 차이입니다.
앱이 틀린 게 아닙니다. GPS 좌표만으로는 실제 이동 거리가 짧게 잡히는데, 위성 신호가 1초에 한 번씩만 들어오는 사이 사람은 직선이 아니라 미세하게 굽은 길을 지나가기 때문입니다. 그래서 요즘 앱들은 GPS 에 가속도계로 잰 보폭과 걸음 수를 섞어 거리를 보정합니다.
그래서 이 도구는 파일 안에 기기가 기록한 거리 값이 들어 있으면 그 값을 정답으로 삼고, 각 지점의 누적 거리를 거기에 비례해 맞춥니다. 앱에서 6.07km 를 본 분이 영상에서 5.85km 를 보는 일이 없도록 하기 위해서입니다. 기기 값이 없는 파일은 좌표로 계산하며, 그 사실을 요약 아래에 표시합니다.
상승 고도는 왜 "추정"이라고 표시되나
GPX 의 고도 값은 GPS 로 잰 것이라 위아래로 계속 흔들립니다. 이 흔들림을 그대로 더하면 평지를 달려도 누적 상승이 100m 를 넘습니다. 실제로 앞의 기록은 고도 범위가 16~24m 인 평지 하천길인데, 생값을 더하면 139m 가 나옵니다. 기기가 표시한 값은 19.7m 입니다.
이 차이는 계산을 잘해서 메울 수 있는 종류가 아닙니다. 기기는 기압계로 고도를 따로 재고, GPX 에는 GPS 고도를 적어 넣기 때문입니다. 그래서 파일에 기기 값이 있으면 그대로 쓰고, 없을 때만 이동평균과 임계값으로 노이즈를 걸러 계산한 뒤 추정치라고 밝힙니다. 정확한 척하는 것보다 낫다고 봅니다.
기기마다 다른 표기를 맞추는 부분
- 확장 태그 접두사 — 삼성헬스는
gpxtpx:hr, 가민 커넥트는ns3:hr로 같은 심박 값을 씁니다. 접두사를 보지 않고 태그 이름만으로 찾습니다. - 케이던스 단위 — 삼성은 양발 기준(분당 약 174), 가민 시계는 한발 기준(분당 약 87)을 같은 태그에 넣습니다. 중앙값이 120 미만이면 한발 기준으로 보고 2배로 환산합니다.
- 시간대 — GPX 의 시각은 협정 세계시(UTC)입니다. 그대로 쓰면 새벽 6시 러닝이 전날 밤 9시로 표시됩니다. 파일에 시간대 정보가 없어 보고 계신 기기의 시간대를 기준으로 날짜를 표시하며, 영상에는 벽시계 시각 대신 경과 시간을 씁니다.
- 기록 중단 — 신호가 끊기거나 자동 일시정지가 걸린 구간은 선을 잇지 않고 끊어 그립니다. 긴 정지 구간은 재생할 때 3초로 압축해, 신호등에서 기다린 2분 때문에 영상이 멈춰 있지 않도록 했습니다.
경로를 돌려서 화면을 채웁니다
하천을 따라 왕복하는 코스처럼 한 방향으로 길쭉한 경로를 가로 화면에 그대로 넣으면 실오라기처럼 가늘어집니다. 그래서 경로를 회전시켜 프레임을 가장 크게 채우는 각도를 찾습니다. 경로의 볼록 껍질을 구한 뒤 1도 간격으로 180번, 다시 최적점 주변을 0.1도 간격으로 훑어 가장 크게 담기는 각을 고릅니다.
실제 기록으로 재보면 경로가 화면에서 차지하는 넓이가 세로(9:16)에서 1.1배, 정사각에서 1.4배, 가로(16:9)에서 2.4배로 커집니다. 이미 프레임 방향과 잘 맞는 경로는 회전각이 0도에 가깝게 나와 저절로 그대로 둡니다.
대신 위쪽이 북쪽이 아니게 됩니다. 회전이 일어나면 미리보기 아래에 몇 도를 돌렸는지 표시하고, 방위를 유지하고 싶으시면 "프레임에 꽉 차게 회전"을 끄시면 됩니다. 지도 투영은 웹 메르카토르라 등각(等角)이어서, 돌려도 경로 모양은 찌그러지지 않습니다.
구간 마커와 숫자가 놓이는 자리
구간 마커는 누적 거리가 1·5·10km 를 넘어서는 지점을 찾아 앞뒤 두 좌표 사이를 비례로 나눠 찍습니다. 지나온 마커만 나타나고, 막 지난 마커는 잠깐 커졌다 가라앉습니다. 6km 코스라면 1km 간격이 알맞고, 풀코스에 1km 간격을 쓰면 마커 42개가 서로 겹치니 5km 나 10km 로 바꾸시는 편이 낫습니다.
숫자는 네 귀퉁이에 놓이므로 한 번에 네 개까지 켤 수 있습니다. 다섯 번째를 켜면 화면에 안 나오면서 켜진 것처럼 보이게 되어, 아예 못 켜도록 막았습니다. 숫자를 켜면 그만큼 위아래 자리를 비우고 경로를 그 안에 담습니다 — 그러지 않으면 경로 위 마커가 큰 숫자 뒤로 숨습니다. 반대로 지표를 모두 끄면 띠가 사라져 경로가 화면 끝까지 커집니다.
현재 페이스는 25초 구간 평균입니다
1초 간격 좌표로 그 순간의 페이스를 계산하면 값이 미친 듯이 튑니다. GPS 오차 2~3m 가 1초에 실리면 시속으로는 10km 넘게 흔들리기 때문입니다. 그래서 앞뒤 25초를 묶어 평균낸 값을 현재 페이스로 씁니다. 러닝 워치가 "현재 페이스"를 보여줄 때 쓰는 방식과 같습니다.
🔒 개인정보에 관한 안내
GPX 파일의 첫 좌표는 대개 집이나 직장 앞입니다. 이 도구는 파일을 서버로 보내지 않지만, 완성된 영상을 SNS 에 올리는 순간 그 좌표는 공개됩니다. 집 앞에서 출발하는 코스라면 "시작·종료 지점 가리기" 를 켜서 앞뒤 200m 를 잘라내고 공유하시길 권합니다. 러닝 커뮤니티에서 실제로 여러 번 문제가 됐던 부분입니다.
자주 묻는 질문
Q. 삼성헬스에서 GPX 는 어떻게 받나요?
운동 기록을 연 뒤 오른쪽 위 더보기 ⋮ 를 누르면 GPX 파일로 경로 공유 항목이 있습니다. 비교적 최근에 추가된 기능이라 앱이 구버전이면 보이지 않을 수 있으니, 안 보이면 삼성헬스를 최신 버전으로 업데이트해 보세요.
Q. 파일이 서버로 올라가나요?
올라가지 않습니다. 브라우저의 파일 읽기 기능으로 내용을 읽어 화면에 그릴 뿐이고, 네트워크로 아무것도 보내지 않습니다. 인터넷 연결을 끊고 페이지를 새로고침해도 동작하는 것으로 확인하실 수 있습니다.
Q. 심박이나 시간 정보가 없는 GPX 도 되나요?
됩니다. 위도·경도만 있으면 경로가 그려집니다. 시간이 있으면 거리·페이스가, 심박이 있으면 심박 표시와 심박 기준 색칠이 추가로 켜집니다. 시간이 아예 없는 코스 파일은 거리 순서대로 재생합니다.
Q. 영상에 숫자 없이 경로만 나오게 할 수 있나요?
됩니다. "영상에 표시할 지표"에서 체크를 모두 해제하고 진행 바와 구간 마커까지 끄면 경로만 남습니다. 이때는 숫자 자리로 비워 두던 위아래 여백도 사라져서 경로가 화면 끝까지 커집니다. 반대로 페이스와 거리만 보고 싶으시면 그 둘만 켜시면 됩니다.
Q. 지도 배경은 왜 없나요?
지도 타일은 제공처마다 이용 약관과 사용량 제한이 있어, 무료 도구에 무제한으로 얹기 어렵습니다. 대신 배경 없이 경로만 그리는 방식을 택했습니다. SNS 에 올릴 때는 오히려 이쪽이 깔끔하게 보이고, 지도가 없으니 어느 동네인지 한눈에 드러나지 않는다는 장점도 있습니다.
Q. 동영상 파일로 저장은 언제 되나요?
지금 바로 됩니다. "동영상으로 저장" 버튼을 누르면 화면에 보이는 설정 그대로 MP4 파일이 만들어져 내려받아집니다. 세로는 1080×1920, 정사각은 1080×1080, 가로는 1920×1080 으로 나오며 인스타그램·유튜브에 그대로 올릴 수 있습니다. 인코딩도 브라우저 안에서 일어나므로 영상이 서버를 거치지 않습니다. 사파리 구버전 등 일부 브라우저에서는 WebM 으로 저장될 수 있는데, 이 형식은 인스타그램이 받지 않으니 크롬이나 엣지를 쓰시는 편이 확실합니다.