读万卷书,行万里路
本项目通过数据可视化的力量,将毛泽东主席自 1893 年至 1976 年波澜壮阔的一生,浓缩于一张可交互的动态地图之上。让那段恢弘的历史"活"起来,清晰、生动地展现伟人在中国历史洪流中的每一个关键抉择与地理印记。
在线体验:https://sansan0.github.io/mao-map/
无论你是发现了一个错误日期,还是想补充一段被遗漏的足迹,你的每一次贡献,都在让历史画卷更加完整。
感谢诸位同志为项目的完善做出的贡献:
每个考据者都可以在自己的考据中留下你对该事件的 comment, 你可以在 issues 中提交,由项目作者进行录入,以后考据的人多了,评论多了,我会做成弹幕在地图上滚动
"userVerification": [
// 支持多人协同考据
{
"username": "湘江史话", // 考据者署名 (可选)
"comment": "一个注定将改变中华民族命运的伟人在韶山冲的农家小院中诞生。此时的中国正值内忧外患,列强瓜分,民族危亡之际。这个婴儿的啼哭声,仿佛是历史的回响,预示着一个新时代的到来。从韶山走向天安门,从农家子弟到开国领袖,毛泽东的一生将与中国人民的解放事业紧密相连,书写出波澜壮阔的历史篇章。", // 考据补充或感言 (可选)
"date": "2025-06-30" // 考据日期 (可选)
}
]
- 时间轴播放:点击
▶️ 播放按钮,按时间顺序观看毛主席 83 年的人生轨迹动画 - 时间定位:拖动底部的时间轴,可以快速定位到特定年份,查看当时的活动
- 多层级标记:根据访问次数和事件类型智能显示不同样式的地图标记
- 详情面板:点击地图上任意标记,查看该地点的完整历史事件列表
- 路径高亮:点击事件列表项可高亮显示对应的移动路径
- 实时统计:动态显示移动次数、访问省市、国际移动等数据
- 进度追踪:实时显示当前播放进度、年龄、事件序号等信息
- 可视化图表:直观展示历史轨迹的统计信息
- 空格键:播放 / 暂停
- ← / →:前一个 / 后一个事件
- Home / End
为了让大家更方便地提交准确的校订建议,我在地图中内置了一个小工具:
使用方法:
- 浏览器打开 在线地图
- 拖动底部时间轴到你想要校订或引用的事件位置
- 鼠标双击时间轴滑块,即可自动复制该事件的完整 JSON 数据到剪贴板
- 粘贴到 GitHub Issues 中,也方便我定位数据问题
发现错误或想补充事件?只需填写我们准备好的模板,然后通过 GitHub Issues 提交。
-
选择模板:根据你的目的,复制下面的"校订"或"增补"模板。
✍️ 点击展开:修正现有事件模板
## 修正现有事件 **定位信息**: - 事件日期:1921-07-23 - 当前显示:参加中共一大 **问题类型**: - [ ] 日期错误 - [x] 地点错误 - [x] 事件描述不准确 - [ ] 史料来源问题 **问题事件** - 日期:1921 年 7 月 - 地点:上海 - 描述:参加中共一大 **建议修改为**: - 日期:1921 年 7 月 23 日 - 地点:上海法租界望志路 106 号(今兴业路 76 号) - 描述:出席中国共产党第一次全国代表大会开幕会议。 **史料依据 (最重要!)**: 《毛泽东年谱(1893-1949)》上卷,中央文献出版社,2013 年 12 月第 2 版,第 86 页。 (强烈建议附上史料的截图或照片)
➕ 点击展开:增补缺失事件模板
## 新增历史事件 - **日期**: 1927-09-09 - **地点**: 湖南省浏阳市 - **事件简述**: 领导湘赣边界秋收起义 - **重要性级别**: 🔴 一级事件 - **事件类型**: 长途移动 <!-- 请从 [出生, 国际移动, 长途移动, 短途移动, 原地活动] 中选一个 --> **详细描述**: 毛泽东作为中共中央特派员和前敌委员会书记,在浏阳、文家市等地领导和发动了湘赣边界的秋收起义。这是我党第一次在武装斗争中公开打出自己的旗号——工农革命军。 **史料依据 (最重要!)**: 《毛泽东传》金冲及主编,中央文献出版社,2016 年修订版,第 150-155 页。 **录入标准自查**: - [x] 涉及明确的地理移动 - [x] 具有高度的历史重要性 - [x] 史料来源可供查证 **你的补充说明或感言 (选填)**: 秋收起义是探索"农村包围城市"道路的伟大开端。
-
提交卡片
- 访问项目的 Issues 页面。
- 点击绿色的
New issue
按钮。 - 标题清晰明了,如"修正 1921 年一大地点"或"补充 1927 年秋收起义"。
- 内容部分粘贴并填写好的信息卡片。
- 点击
Submit new issue
即可。
如果你熟悉 JSON 和 Git,欢迎直接修改数据文件并发起 Pull Request。
- 所有事件数据都存放在
data/mao_trajectory_events.json
。 - json 中,如果 verification 字段为空,那么就说明缺乏考据(该字段我一开始没想到加) 。
📋 点击展开:数据格式规范与填写指南
查看完整数据文件:mao_trajectory_events.json
每一条事件都遵循统一的 JSON 结构,确保数据的一致性:
{
"date": "1893-12-26", // 事件发生日期
"age": 0, // 主席当时年龄
"movementType": "出生",
"event": "毛泽东出生,字咏芝(后改润之),乳名\"石三伢子\"",
"coordinates": {
"start": null,
"end": {
"province": "湖南省",
"city": "湘潭市",
"district": "韶山市"
},
"transit": [] // 途径地点 (可选)
},
"verification": "《毛泽东年谱》,中央文献出版社,2002年版,第 1 页", // 史料来源
"userVerification": [
// 支持多人协同考据
{
"username": "湘江史话", // 考据者署名 (可选)
"comment": "一个注定将改变中华民族命运的伟人在韶山冲的农家小院中诞生。此时的中国正值内忧外患,列强瓜分,民族危亡之际。这个婴儿的啼哭声,仿佛是历史的回响,预示着一个新时代的到来。从韶山走向天安门,从农家子弟到开国领袖,毛泽东的一生将与中国人民的解放事业紧密相连,书写出波澜壮阔的历史篇章。", // 考据补充或感言 (可选)
"date": "2025-06-30" // 考据日期 (可选)
}
]
}
为了确保地图标记的准确性和一致性,请严格按照以下标准选择事件类型。分类仅基于事件自身的 start
和 end
坐标:
-
"出生"
:仅用于毛主席的出生事件- 要求:
start
必须为null
,end
必须有值,不能有transit
- 地图显示:只在
end
坐标显示一个标记,标记为"出生"
- 要求:
-
"国际移动"
:该事件的起点和终点跨越国界- 判断标准:
start
和end
在不同国家,或途径点涉及多个国家 - 示例:从北京到莫斯科
- 地图显示:起点标记为"出发",终点标记为"到达",途径点标记为"途径"
- 判断标准:
-
"长途移动"
:该事件的起点和终点跨越省份- 判断标准:
start
和end
在不同省份,或途径点涉及多个省份 - 示例:从湖南长沙到北京
- 地图显示:起点标记为"出发",终点标记为"到达",途径点标记为"途径"
- 判断标准:
-
"短途移动"
:该事件在同一省份内的不同地区间移动- 判断标准:
start
和end
在同一省份的不同地区 - 示例:从长沙到韶山
- 地图显示:起点标记为"出发",终点标记为"到达",途径点标记为"途径"
- 判断标准:
-
"原地活动"
:在固定地点的活动,无地理位移- 要求:
start
和end
必须完全相同,不能有transit
- 示例:在延安主持会议
- 地图显示:只在该地点显示一个标记,标记为"活动"
- 要求:
地图显示遵循 "独立事件路径" 的原则:每个事件独立绘制其内部的地理移动轨迹,从 start
到 end
,途径 transit
点。事件之间不绘制连接线,避免产生虚假的地理连续性。
坐标字段说明:
-
start
(起点):- 出生事件:必须为
null
- 原地活动:必须与
end
完全相同 - 其他事件:该事件实际的地理起点
- 重要:应该填写该事件的真实起点,不需要强制等于上一个事件的
end
- 出生事件:必须为
-
end
(终点):- 所有事件都必须有
end
坐标 - 这是地图上主要标记显示的位置
- 也是该事件的地理终点
- 所有事件都必须有
-
transit
(途径点):- 仅在该事件的行程中有重要停留时填写
- 按照时间顺序排列
- 会在地图上显示为独立的标记点
地图显示逻辑:
- 路径绘制:只绘制每个事件的内部路径(
start
→transit
→end
) - 事件间连接:不绘制任何事件与事件之间的连接线
- 标记显示:所有坐标点(
start
、end
、transit
)都会显示为可点击的地图标记 - 标记分类:
start
坐标标记为"出发"end
坐标标记为"到达"transit
坐标标记为"途径"- 出生事件的
end
坐标标记为"出生" - 原地活动的坐标标记为"活动"
- 详情面板:点击任何标记可查看该地点的所有相关事件,按时间顺序显示
路径绘制原则:
- 移动事件:绘制
start
→transit
→end
的路径线 - 原地活动:不绘制任何路径线,只显示标记
- 出生事件:不绘制路径线,只显示标记
movementType
的分类基于事件自身的start
和end
,不受前序事件影响
地理精度要求:
- 🎯 优先精确到区/县级:
"district": "韶山市"
- 📍 其次精确到市级:
"city": "湘潭市"
- 🌍 最后精确到省级:
"province": "湖南省"
- 🌐 国外地点:
"country": "俄罗斯", "city": "莫斯科"
- 填写要求:用一句话简明扼要地描述发生了什么事,这是事件的核心内容
- 格式建议:动词开头,突出关键行为和结果
- 举例:
"考察湘潭、湘乡、衡山、醴陵、长沙五县农民运动,历时32天"
⚠️ 这是项目最看重的部分! 请务必写清楚你这条信息的来源,方便大家核对。
- 标准格式:
《书名》,作者,出版社,出版年份,第X页
- 网络资源:
网站名称 文章标题,发布日期,网址
- 档案资料:
档案馆名称,档案编号,文件标题
- 举例:
"《毛泽东年谱(1893-1949)》上卷,中央文献出版社,2013年版,第1页"
这是一个可以自由发挥的地方,欢迎您:
- ✍️ 补充说明:写下对这个事件的额外研究心得
- 📖 查证过程:分享您的史料查证经历
- 💡 个人感想:抒发对这段历史的思考和感悟
- 🏷️ 署名纪念:留下您的大名和日期,作为贡献纪念
格式示例:
"userVerification": [
{
"username": "历史爱好者", // 您的署名
"comment": "通过查阅多份史料,确认了这一事件的准确性...", // 您的补充或感言
"date": "2025-01-01" // 考据日期
}
]
✍️ 点击展开:本地运行或二次开发的步骤
-
克隆或下载项目
# 使用 Git 克隆 git clone https://github.com/sansan0/mao-map.git cd mao-map # 或者,直接下载并解压 ZIP 包 # https://github.com/sansan0/mao-map/archive/refs/heads/master.zip
-
启动本地服务器
- 方法 A:使用 Python (需已安装 Python)
# 在项目根目录运行 python -m http.server 8000 # 然后在浏览器访问 http://localhost:8000
- 方法 B:使用 VS Code & Live Server 插件
- 安装代码编辑器 VS Code。
- 在 VS Code 插件市场安装 Live Server。
- 在 VS Code 中打开项目文件夹。
- 在
index.html
文件上右键,选择Open with Live Server
。
- 方法 A:使用 Python (需已安装 Python)
为保证项目质量,所有贡献都应遵循以下标准。
我们依据事件的历史意义将其分为三级,这决定了事件在历史叙事中的权重。
- 🔴 一级 (历史主干):构成生平与中国历史叙事主线的里程碑式转折点。如:出生、参加中共一大、遵义会议、建立新中国等。
- 🟡 二级 (关键枝干):对主线起到承上启下、重要铺垫作用的事件。如:发表《湖南农民运动考察报告》、指挥四渡赤水、寻乌调查等。
- ⚪ 三级 (枝叶细节):丰富历史细节的常规性、补充性事件。如:在延安从杨家岭搬到枣园、常规性会议、短期休养等。
📋 点击展开:详细的分级标准与判断依据
- 人生阶段的根本性转变: 从韶山到东山学堂(首次离开家乡求学)、确立马克思主义信仰等。
- 革命和国家叙事的关键节点: 领导秋收起义、抵达井冈山、到达延安、发表"论十大关系"等。
- 核心职务的标志性变动: 当选中华苏维埃共和国主席、在遵义会议上被确立为军事领导核心、当选中华人民共和国主席等。
- 产生深远国际影响的活动: 首次访问苏联、与尼克松会面等。
- 重要的思想理论形成与发表: 在延安文艺座谈会上的讲话、发表《论持久战》、提出"百花齐放、百家争鸣"等。
- 重要的战役指挥与战略部署: 部署三大战役的具体指挥、决策抗美援朝等。
- 重要的调查研究与地方视察: 建国后首次视察黄河、南下视察等。
- 对个人和家庭有重大影响的事件: 与杨开慧结婚;长子毛岸英牺牲等。
- 常规性工作移动: 建国后在多个住所(如中南海、北戴河、武汉东湖)之间的季节性移动。
- 一般性会议和接见: 主持某次不产生重大路线变动的政治局常规会议、接见外国普通友好代表团等。
- 短期的休养或个人活动: 在杭州进行短期休养、在北戴河游泳等。
- 提交贡献/BUG:请统一通过 GitHub Issues 提交,这是追踪和处理问题最高效的方式。
- 交流与讨论:欢迎关注公众号 【硅基茶水间】,分享你的想法。
"古为今用",希望这个工具能成为大家学习历史、理解历史的得力助手。
本项目采用 GPL-3.0 License 协议开源,欢迎一切形式的分享与二次创作。