通运铁路信息 (GTR Info) 是一个虚构轨道交通信息系统网站,提供线路信息、列车实时位置(基于 Create Track Map API)、票价计算等功能。
- 查看各条线路经停车站及区间距离、用时
- 实时显示列车位置和运行状态
- 实时追踪列车位置
- 推算列车运行速度和预计到达时间
- 提供列车编组及车型
- 计算任意两站间不同席位的票价
- 提供最优路径推荐(时间最短、换乘最少、价格最低三种模式)
- 多语言支持(简体中文、繁体中文、英语、乌克兰语等)
- 提供主题模式、字体、减弱特效等选项
- 本地存储管理
- 跨页面通知系统(基于浏览器 Notification API)
- 为列车司机视角提供沉浸式指示
- 支持透明背景及纯色、视频、屏幕捕获等自定义背景
- 响应式设计,适配各种设备屏幕
- 使用 CSS3 动画、过渡、阴影、滤镜等效果,营造出类似玻璃和卵石构成的界面
- 自定义 404 错误页面
- 深色/浅色模式自动适配
- 部分页面提供紧凑模式,仅显示最核心信息
本项目采用纯前端技术实现:
- HTML5/CSS3/JavaScript (原生,无框架)
- 响应式设计,适配各种设备屏幕
- 使用 localStorage 进行本地数据存储
- 基于 Fetch API 进行数据交互
- 模块化脚本组织
- 克隆或下载本项目
- 在浏览器中打开 index.html 文件即可使用
- 首次使用会默认跳转到线路信息页面
- 系统会自动恢复上次访问的页面和用户偏好设置
项目支持多种语言界面:
- 简体中文 (zh_hans)
- 繁体中文 (zh_hant)
- 英语 (en)
- 乌克兰语 (uk)
用户可以在偏好设置中切换界面语言。语言设置优先级:
- URL 参数中的
lang值(临时覆盖) - localStorage 中保存的上次使用的语言
- 默认使用简体中文
.
├── data/ # 数据文件目录
│ ├── blocks.json # 从 CTM 获取的一份闭塞区间数据(示例,暂未使用)
│ ├── lines.json # 线路数据(手动指定的停站、走向、用时等)
│ ├── network.json # 线网数据,提供车站位置(格式兼容 CTM )
│ ├── trains.json # 从 CTM 获取的一份列车位置数据
│ └── trains_info.json # 列车信息数据(手动指定的线路、型号、限速等)
├── res/ # 资源文件目录(图片、图标等)
├── index.html # 网站入口文件
├── 404.html # 自定义 404 错误页面
├── lines_info.html # 线路信息页面
├── lines_info.js # 线路信息逻辑
├── lines_info.css # 线路信息样式
├── trains_info.html # 列车信息页面
├── trains_info.js # 列车信息逻辑
├── trains_info.css # 列车信息样式
├── ticket_calculator.html# 票价计算器页面
├── ticket_calculator.js # 票价计算器逻辑
├── ticket_calculator.css # 票价计算器样式
├── preferences.html # 偏好设置页面
├── preferences.js # 偏好设置逻辑
├── preferences.css # 偏好设置样式
├── pov-frame.html # 动态导览页面
├── pov-frame.js # 动态导览逻辑
├── pov-frame.css # 动态导览样式
├── position_utils.js # 位置计算工具函数库(待改进,目前作用不明)
├── dialog.js # 对话框组件
├── keyboard.js # 键盘交互处理
├── layout.js # 布局管理工具
├── script.js # 全局脚本(语言加载、公共函数、通知系统)
├── style.css # 全局样式定义
├── strings.json # 多语言字符串资源
└── readme.md # 说明文档
本项目的数据文件位于 data 目录中:
- lines.json - 线路数据(手动指定的停站、走向、用时等)
- network.json - 线网数据,提供车站位置(格式兼容 CTM)
- trains.json - 列车位置数据示例,正常情况下将直接从 CTM 获取
- trains_info.json - 列车信息数据(手动指定的线路、型号、限速等)
项目支持现代主流浏览器:
- Chrome 80+
- Firefox 75+
- Safari 13+
- Edge 80+
欢迎提交 Issue 和 Pull Request 来帮助改进本项目。
本站提及的各类地名、组织名、品牌名均为虚构,部分代码使用 AI 生成。