
CGo OpenMap 是一款轻量、现代、高度可扩展的开源 Web 城市轨道交通交互线路图引擎。
基于纯原生 Web 标准(HTML5 + SVG 矢量渲染 + Vanilla JS + Web Components + CSS3)打造,零框架打包与编译依赖,克隆即用,首屏毫秒级直出。核心渲染引擎与城市业务数据彻底解耦,全面推行「代码 GNU AGPLv3 + 数据 ODbL 1.0」双轨开源协议,并设立「城市主理人」机制与官方版本向后兼容升级保障。现主程序已完整收录于 dev/openmap/ 目录,诚邀全国交通爱好者与开发者共同绘制并主理属于自己城市的轨道交通脉络!

基于原生 Web 现代标准打造,彻底摆脱庞大前端框架捆绑与繁重构建链。无 Node.js、Vite 或 Webpack 打包门槛,开箱即用,首屏毫秒级秒出,体积轻巧且运行丝滑流畅。
纯矢量 SVG 线路平滑渲染,多级平滑缩放漫游、触控手势捏合双指缩放控制与智能边界回弹。内置深浅双色主题(Dark / Light Mode),随操作系统偏好自动跟随切换或手动按需锁定。
配备原生 Service Worker(sw.js)离线缓存拦截与 Web App Manifest,支持作为独立应用完整“安装”至 Windows、macOS、iOS 和 Android 桌面全屏离线运行。

多维车站智能检索:支持中文站名、英文译名、拼音首字母、多音字及历史更名别名(staname.csv)的即时模糊快速匹配,点击检索结果即刻平滑飞跃高亮居中车站。
深度定制车站信息卡片(cgo-stacard):支持展示换乘线路指示胶囊、车站中英文、运营单位、出入口及周边公交换乘接驳、首末班车时刻表查询接口。
复杂换乘与站台示意:支持精细化站台换乘与楼梯分布结构图、同台换乘以及业界复杂的同站名不同站厅出站限时虚拟换乘全量逻辑支持。
隐私安全的 LBS 定位辅助:基于浏览器本地地理位置 API 计算周边最近车站与直线距离,一键调起高德地图导航或主要火车站 12306 购票,绝不上报用户位置数据。
负责底层 SVG 绘制、视口矩阵变换、手势缩放漫游与全局检索。严禁硬编码特定城市数据或私有业务逻辑。
按城市彻底物理隔离。各城市在独立目录下维护车站坐标、走向与时刻表(如 city/beijing/),通过 city/data.js 注册。
规范收录各城市线路 SVG 矢量徽标(assets/svg/)及车站特色地标徽标,与代码引擎彻底解耦。
纯原生 Web 标准挂载,零构建与打包依赖,开箱即用,任意静态本地服务器秒级直出。
依据 AGENTS.md 核心设计规范,CGo OpenMap 实现了底层核心通用引擎与上层城市业务数据的彻底物理隔离:
• 通用引擎 core/:负责底层 SVG 绘制、视口缩放与矩阵变换、手势处理、全局搜索、图例调度、主题切换与图卡弹窗等通用交互,严禁在 core/ 中硬编码特定城市 station_id 或私有线路逻辑;
• 城市数据层 city/:所有特定城市(如北京、上海、广州等)的车站坐标、走向、站距、图例与时刻表,必须存放在 city/{city_id}/ 下,并通过 city/data.js 的 CITY_REGISTRY 统一注册;
• 零重型依赖:新增功能遵循原生标准,保障任何人打开代码都能在数分钟内看懂并参与维护。
本项目倡导“开放共建、共同主理”的开源社区精神。凡是完整移植或主要维护某座城市线网数据的开发者,均自动成为该城市的官方主理人:
• 尊享专属 UI 联动署名:主理人姓名与 GitHub 个人主页将登记入 city/data.js 的 maintainers 字段,在地图界面核心的「关于与帮助」弹窗中随城市切换动态联动高亮展示,同时永久收录于官方 README.md 致谢名录;
• 主理人治理协同权:未来若有其他贡献者向该城市提交站点勘误或线路更新 PR,官方团队将优先抄送并尊重主理人的审核把关注释;
• 主理人阵容与虚位以待:首发北京线网已由核心团队与协作者(NaL、SierraQin、Freedom Space)整理就绪;上海、广州、深圳、成都、武汉、南京、杭州等全国各大城市主理人现正火热招募中,欢迎提交 PR 认领!
CGo OpenMap 底层渲染引擎正处于高速迭代演进中(包括未来规划的换乘寻路算法、时刻表动态联动、3D/实际走向模式联动与图形渲染大重构)。为什么我们强烈建议贡献者将数据回传合入官方主仓库?
| 对比维度 | 合入官方主仓库(提交 PR) | 私自保留独立分支(不提 PR) |
|---|---|---|
| 底层引擎持续升级 | 无缝平滑升级,始终享受最新特性、性能优化与新版组件 | 随着底层引擎迭代,私有分支与新版引擎迅速失配破损 |
| 数据格式兼容维护 | 官方核心团队终身兜底,提供自动化数据格式迁移工具与全量测试 | 脱离官方支持,后续需自行逐行修改数据格式,维护成本极其高昂 |
| Bug 修复与生态协同 | 享受官方社区与全球交通开发者的联合纠错、测试与跨浏览器修复 | 孤立无援,需要自行排查修复高分屏、手势兼容及不同移动端异常 |
| 开源法律合规 | 100% 符合 GNU AGPLv3 与 ODbL 双轨开源规范,成果受法律与社区保护 | 在线公开部署但不开源数据或引擎修改,存在违规侵权风险 |
把精力留给城市地图的精细化编排与美学创作,底层向后兼容与升级由官方保驾护航!

零基础新手友好:新增配套的《DeepSeek 新手实战手册 (DEEPSEEK_QUICKSTART.md)》,即使没有任何代码基础的普通交通迷,也能借助开源智能体框架 DeepSeek Harness (dsh),用日常大白话(如“帮我在上海地图上添加14号线,连通静安寺与陆家嘴”)指挥 AI 自动编写车站坐标、生成走向并验证。
全方位适配各类主流 AI Coding Agent:项目内置专为 AI 打造的 AGENTS.md 指南,已深度适配 DeepSeek-V3/R1、Antigravity、Claude Code、Cursor、Cline 以及 Roo Code 等工具。AI Agent 可秒级理解项目结构、目录解耦铁律与数据结构规范,高质量执行线路勘误与新城市批量移植。
通过标准化数据配置清单与解耦架构,仅需 5 步即可完成从零制作到合入主库的全流程:
city/ 目录下新建城市文件夹(例如 city/shanghai/),复制参考范例模板。city/data.js 的 CITY_REGISTRY 中登记城市 ID、初始中心点、画布大小及 maintainers 署名。data_stations.js(车站坐标与名称)、data_lines.js(线路走向与标志色)及图例与时刻表。python3 -m http.server)直接在浏览器中打开调试预览。为保障开源社区成果不被商业闭源私吞,同时最大化激励城市数据开放共享,CGo OpenMap 采用代码引擎与城市业务数据分离的双轨开源协议架构(详见 LICENSE):
• 核心软件引擎(core/、css/、index.html 等):遵循 GNU Affero General Public License v3.0 (GNU AGPLv3)。彻底封堵云端 SaaS 闭源漏洞,任何在网络服务器上运行并向公众提供交互式在线地图服务的修改版本,均必须向访问者公开全部源码。
• 城市地理与业务数据层(city/ 目录):遵循 Open Database License (ODbL 1.0) 与 CC BY-SA 4.0 相同方式共享协议。任何基于本项目数据衍生或扩充的新城市线网数据库一旦公开,必须保持同等协议开源共享;主仓库依法享有收编合并公开衍生数据的权利。
• 知识产权合规声明:各城市轨道交通系统的官方标志、线路名称、官方标志色及官方运营数据版权归属各属地轨道交通运营公司所有。
• 纯客户端本地隐私政策(privacy.html):全站纯本地运行,不设任何用户数据上传通道;LBS 地理定位仅在浏览器本地计算直线距离,绝不回传用户经纬度与位置轨迹;偏好设置仅存留于本地 localStorage,零追踪 Cookie 与第三方 SDK。
无论你是零基础新手想借助 AI 工具快速绘制家乡地铁,还是前端极客希望深度扩展二次开发,我们均在 dev/openmap/ 中提供了全套完备的文档指引:
CGo OpenMap 官方核心代码与多城市数据仓库。支持 Star 关注最新演进、Fork 移植开发、提交 PR 认领主理人与 Issue 交流反馈。
纯原生交互地铁线路图引擎完整演示。包含视口平移缩放、站点搜索高亮、车站图卡与时刻表展示。
内置于地图应用内的交互式说明文档,详述平台特性、操作手势、快捷键以及版本规范。
项目整体概述、核心特性盘点、目录架构全景索引、主理人计划与致谢名录。
面向各类 AI Coding Agent 的开发守则。详述架构三大铁律、数据规范与代码边界要求。
零编程基础小白指南:手把手教你配置 DeepSeek Harness,用日常大白话指挥 AI 绘制地铁图。
保姆级新城市移植教程。详述车站坐标网格采集、线路走向定义、图例结构构建与虚拟换乘配置。
城市主理人专属署名机制与治理权细则,合入主库 vs 独立分支保障对比,以及标准 PR Checklist。
纯客户端本地计算承诺,零地理位置上传,无第三方追踪 Cookie,保障用户数据完全私密。
GNU AGPLv3(核心引擎代码)与 ODbL 1.0 + CC BY-SA 4.0(城市地理数据)完整法律许可证文本。