尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗시간대별로 경주에서 붐비는 곳을 보여주고, 그곳을 피해서 가는 길(걸어서·버스·차)을 찾아주는 웹사이트.
| 위치 | 내용 | 자주 고치는 곳 |
|---|---|---|
data/zones.js | 혼잡 구역(위치·반경·평소 혼잡도) | ✅ 감으로 넣은 혼잡도 수정 |
data/attractions.js | 주요 관광지(체류시간·꼭 볼 것·링크) | ✅ 현지인 팁 추가 |
data/places.js | 경주시 관광지 158곳 목록 (권역·주소·전화) | 새 목록 받을 때 |
data/closures.js | 마라톤·대회 도로 통제 일정 | ✅ 일정 생길 때마다 추가 |
data/seasonality.js | 월별 계절 배율 (데이터랩 CSV) | 새 CSV 받을 때 |
data/holidays.js | 공휴일 | 1년에 한 번 |
lib/ | 혼잡도 계산·거리 계산·날짜 | 거의 안 고침 |
api/ | 서버 함수 (키는 여기서만 씀) | 거의 안 고침 |
index.html, style.css, app.js | 화면 | 디자인 바꿀 때 |
| 이름 | 어디서 | 없으면 |
|---|---|---|
KAKAO_JS_KEY | 카카오 개발자 콘솔 → 앱 → 플랫폼 키 → JavaScript 키 | 지도가 안 나옴 |
KAKAO_REST_KEY | 카카오 개발자 콘솔 → 앱 → 플랫폼 키 → REST API 키 | 버스 경로 안 됨 |
GRAPHHOPPER_API_KEY | GraphHopper 대시보드 → API Keys | 걸어서·차 경로 안 됨 |
DATA_GO_KR_SERVICE_KEY | 공공데이터포털 → 일반 인증키(Decoding) | 혼잡 예측·버스 실시간 도착 없이 동작 |
ITS_API_KEY | 국가교통정보센터(ITS) 오픈데이터 → 인증키 신청현황 | 실시간 도로 속도·돌발상황 없이 동작 |
공공데이터포털에서 활용신청이 필요한 데이터: 관광지 집중률 방문자 추이 예측, 국토교통부_(TAGO)버스도착정보, 국토교통부(TAGO)_버스정류소정보 (모두 같은 인증키).
ITS는 국내 IP에서 온 요청에만 답해서, 서버 함수를 서울(icn1)에서 돌리도록 vercel.json에 적어 뒀어요.
ITS 월 호출 한도(서비스마다 3,000건)를 넘지 않게 돌발상황은 30분, 도로 속도는 15분 동안 같은 결과를 다시 써요 (최대 하루 48건 / 96건).
카카오 콘솔의 JavaScript SDK 도메인에 Vercel 주소(예: https://gyeongju-hansangil.vercel.app)를 꼭 추가하세요.
점수 = 평소 혼잡도(구역·요일·시간대) × 계절 배율(월) × 그날 예측 배율
api/route.js의 CROWD_COST, MAX_EXTRA_MIN).lib/transit.js).
api/events.js, api/speeds.js, lib/its.js)data/closures.js는 그대로 쓸 수 있어요 (ITS에 안 올라오는 행사용).street_name)와 맞춰요. 시간을 '지금'으로 두고 차 길을 찾을 때만 써요.
/api/speeds를 열면 지금 잡히는 도로 목록이 보여요.경로를 찾은 뒤 이 길로 안내 시작을 누르면 GPS로 내 위치를 따라가며 다음 안내(예: "120m 후 왼쪽으로")를 지도 위에 보여줘요 (lib/nav.js).
경로에서 벗어나면(걸어서 45m, 차 70m, 버스 120m) 다시 찾기로 지금 위치에서 다시 계산하고 안내를 이어가요.
경로에서 2km 넘게 떨어져 있거나 위치 권한이 없으면 미리보기로 단계별로 넘겨볼 수 있어요.
음성 안내는 브라우저 음성(한국어)으로 켜고 끌 수 있어요.
휴대폰에서는 지도가 화면 전체에 깔리고, 메뉴는 아래에서 끌어올리는 시트예요. 손잡이를 끌거나 눌러서 작게·반·크게로 바꿔요. 안내를 시작하거나 '지도에서'로 고를 때는 자동으로 작게 내려가요.
지도 아무 데나 누르면 주소·혼잡도와 여기서 출발 / 여기로 도착 팝업이 떠요.
사이트 주소 뒤에 ?draw를 붙여 열면(/?draw) 지도를 눌러 꼭짓점을 찍고 좌표를 복사할 수 있어요.
data/zones.js에서 그 구역의 polygon: [ ... ], 부분을 통째로 지우고 붙여넣으세요.
api/arrivals.js)relay/ncp-its-relay.cjs, Vercel 환경변수 ITS_RELAY_URL, ITS_RELAY_TOKENNode.js가 설치돼 있으면 설치할 패키지 없이 바로 돼요.
cp .env.example .env.local # 키 채우기
node dev-server.js # → http://localhost:3000