Visualize your year in travel using your Google Location History (Timeline) data
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 天前 | ||
| 4 天前 | ||
| 5 天前 | ||
| 20 天前 | ||
| 5 天前 | ||
| 9 天前 | ||
| 5 天前 | ||
| 7 天前 | ||
| 5 天前 | ||
| 18 天前 | ||
| 13 天前 | ||
| 5 天前 | ||
| 8 个月前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 12 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 8 个月前 | ||
| 20 天前 | ||
| 8 个月前 | ||
| 5 天前 |
Timeline Visualizer
将你的 Timeline 文件变成一部在 Android 手机上播放的动画旅行视频。可精确选择日期,预览旅程,并创建可直接观看或分享的 MP4 视频。


在 iPhone 上使用
在 Safari 中打开 iPhone 网页应用。 无需安装应用,也不会上传 Timeline 文件。
- 在 Google 地图中,打开 个人资料图片 → 设置 → 个人内容 →
导出 Timeline 数据,并将
Timeline.json保存到“文件”App。 - 返回网页应用,选择 选择 Timeline.json。
- 选择月份范围或具体日期,选择距离单位和相机移动方式,并确认地图隐私声明。
- 预览旅程,然后选择 创建 MP4。
- 播放、分享或下载完成的视频。
创建 MP4 需要 Safari 16.4 或更高版本,并支持 H.264 编码。创建视频期间请保持该标签页处于打开状态。若要将网页应用保留在主屏幕上,请使用 Safari 的共享菜单并选择 添加到主屏幕。
在 Android 上安装
该应用尚未上架 Google Play。请从本仓库的 最新版本 安装:
- 在 Assets 下,于你的手机上下载最新的
TimelineVisualizer-*.apk文件。不要下载.sha256校验文件。 - 打开已下载的文件。
- 如果 Android 阻止安装,请选择 设置,允许你的浏览器或文件管理器 安装未知应用,然后返回并重试。
- 安装完成后,你可以再次关闭该权限。
仅从本仓库下载 APK。Android 可能会显示警告,因为该应用不是通过 Google Play 安装。对于直接分发的 APK,这种警告属于预期情况。后续版本可在此版本之上安装。
需要 Android 8.0 或更高版本。
获取你的 Timeline 文件
在 Android 设备上,导出入口位于手机“设置”应用中,而不是 Google Maps:
- 打开 手机设置。
- 选择 位置信息 → 位置服务 → Timeline。
- 选择 导出 Timeline 数据,然后选择 继续。
- 将
Timeline.json保存到方便查找的位置,例如 下载。
如果找不到 Timeline 菜单,或者你手机上的名称不同,请查看 Google 的 Timeline 帮助。
不同手机的名称和菜单位置可能不同。在 Timeline Visualizer 中,获取 Timeline 文件 会显示这些说明,并可以替你打开位置设置。Android 没有为应用提供可直达 Timeline 页面的标准链接。
在 iPhone 上,导出的 JSON 文件可以直接用于 iPhone 网页应用。也可以将其转移到 Android 手机,并在 Android 应用中打开。
恢复缺失的 Google Maps Timeline
如果更换手机、重新安装 Google Maps 或重置设备后,较早的行程不见了,Google Maps 中可能仍有一份加密的 Timeline 备份。请使用应用中的 恢复 Google Maps Timeline 链接,或按照 恢复指南 操作。
请先在 Google Maps 中恢复历史记录,然后导出新的 JSON 文件。Timeline Visualizer 无法访问你的 Google 账号或加密备份,也不会直接执行恢复。
创建并分享视频
- 打开 创建视频,通过选择
Timeline.json来设置你的旅行日志。 应用会在本地保存有用的行程历史,并会在你之后导入更新的导出文件时补充新的细节。 - 选择已保存的行程,在旅行日志中查找行程,创建月度或年度回顾,或输入精确日期。时间范围可以跨年份。
- 确认标题,然后选择预设,或设置 10 到 300 秒之间的自定义旅程时长。模板会保存下来供下次使用,并支持
{year}和{name}。时长超过 60 秒时,会显示渲染时间和存储空间提醒。 - 选择 预览 查看动画地图。这是一个交互式预览。 保存下来的视频会采用相同设计,并在渲染前准备好地图图块。
- 选择 创建视频。在 Android 10 及更高版本上,应用会自动将其保存到
Movies/Timeline Visualizer。Android 8 和 9 会使用系统“另存为”选择器。应用会显示每个阶段,在进度足以估算时显示预计用时,并提供取消按钮。 你仍然可以切换应用或关闭屏幕,创建过程会继续。 - 视频保存完成后,你可以观看或分享它,使用 另存为 将其复制到其它位置,也可以选择保存或分享 1080 × 1080 的旅程概览,或者再创建另一个视频。
所选的 JSON 文件不会被复制。有用的行程历史会保存在应用私有的旅行日志中,以便后续导出的文件可以补充新的详细路线片段。如果你希望保留近期细节,请定期导入更新的 Timeline。旅行日志仅保存在当前设备上,不包含在 Android 备份和设备转移中。清除应用存储或卸载应用会将其删除。
较早的行程会逐渐淡化到移动标记之后,使很长且详细的 Timeline 也能保持清晰、高效地渲染。在所选旅程时长结束后,视频会追加 1.5 秒的结尾:镜头拉远,展示完整路线,并将最终概览停留半秒。
如果你取消,应用会删除不完整的输出文件。预览播放结束后,再次选择 预览 会从开头重新播放。在 Android 13 或更新版本上,允许通知后,你可以在应用外查看进度,并在完成时收到提醒。即使拒绝通知访问,视频创建仍会继续进行。
保留你的视频
已完成的视频会自动添加到 我的视频 中。每个条目都会保留缩略图、标题、时间线区间、时长和创建日期,并提供快速观看或分享操作。视频将在应用内的全屏播放器中打开,支持进度拖动、分享,并提供外部播放器回退方案。自动创建的 MP4 文件仍保留在 Movies/Timeline Visualizer 中。应用只保存一个小型本地索引,以及由最终行程总览生成的确定性缩略图。
使用 添加视频 可纳入此视频库引入之前生成的 MP4。你可以一次选择多个视频。如果文件在应用外被移动或删除,对应条目会标记为 文件不可用,以便你从列表中移除它。
从列表中移除 不会改动 MP4 文件。删除视频 是独立且需确认的操作,在存储提供方允许时会永久删除该文件。全部删除 会在确认后删除所有可用视频。底部导航让 我的视频、创建视频 和 设置 触手可及。
视频设置
设置 控制每个新视频的默认值。平稳镜头和均衡式长途压缩是默认值。固定镜头保持单一缩放级别,而动态镜头会更主动地跟随局部移动。长途压缩只改变动画节奏,不改变路线几何。视频格式提供方形 480p、720p 和 1080p 输出,以及竖屏 1080 × 1920 和横屏 1920 × 1080 预设。恢复默认会将所有视频设置重置为推荐值。
时间线处理默认使用保守型 GPS 离群点过滤。它只忽略孤立的、不合常理的往返坐标,显示被忽略的数量,并保持原始 JSON 文件不变。将过滤器设为关闭,即可使用所选文件中的所有位置。
应用支持英语、韩语、日语、简体中文、繁体中文、西班牙语、法语、德语和巴西葡萄牙语。请在设置中选择任一支持的语言,或保持系统默认。设置页面还会显示已安装版本和构建代码。
长途航班和其他稀疏路线会沿大圆路径进行插值,因此镜头能够平滑跟随行程,而不是直接跳到目的地。在本地出行时,标记可以在稳定的中心区域内移动,镜头随后再跟随。这能减少通勤时地图快速来回移动,同时不会改变或删除任何时间线数据点。
支持的时间线导出
- 当前 Android 和 iOS 的直接数组时间线导出格式
- 旧版
{ "semanticSegments": [...] }导出格式 - 可选的原始位置回退机制,并包含警告和本地降噪处理
- 时间线路径、活动与到访记录
- 字符串、
latLng、度数、geo:和 E7 坐标 - 跨越国际日期变更线的路线
隐私
不会使用 Google 登录、位置权限、账户权限、分析功能或宽泛的存储权限。应用只读取你选择的 JSON 和视频文件,视频渲染也保留在设备本地。旅行日志会将有用的导入行程历史保存在应用私有存储中,且绝不会上传。
Google 登录虽然可以提供个人资料名称,但 Google 不会通过登录公开手机的时间线历史。要求登录只会额外增加账户访问权限,却不会省去导出步骤,因此应用会使用你可编辑的手机名称作为默认标题。
你的时间线文件绝不会上传。底图是唯一使用网络的功能。CARTO 会接收针对当前显示地图区域的请求,并基于 OpenStreetMap 数据提供地图瓦片。这可能会让瓦片提供方看到你查看过的区域,但时间线 JSON 不会被上传。在首次加载时间线之前,应用会说明这一数据传输情况,并允许你取消。完整说明请参见隐私说明。
桌面 Python 版本
原始 Python 生成器仍可供桌面用户使用。它需要 Python 3.9+、FFmpeg,以及 requirements.txt 中列出的依赖包。
请参见平台功能一致性,了解 Android、桌面 CLI 和 Web 应用共同支持的跨平台功能,以及有意仅支持 Android 的功能。
python -m pip install -r requirements.txt
python visualizer.py --input Timeline.json --year 2025 --camera-movement steady \
--long-trip-compression balanced --output my_trip_2025.mp4
构建与测试
Android 开发需要 JDK 17、Android SDK Platform 36 和 Build Tools 36.0.0。
构建请求 CARTO 底图瓦片的版本时,请设置 CARTO_BASEMAP_API_KEY。
官方 Android 与 Web 发布版本会通过 GitHub Actions 注入同一项目密钥。
在本地运行 Python 时,也会从该环境变量中读取密钥。
export CARTO_BASEMAP_API_KEY="your-project-key"
./gradlew test lint assembleGithubDebug assemblePlayDebug
python -m pip install -r requirements-dev.txt
python -m pytest
底图版权说明会在每个预览和导出视频中显示: © OpenStreetMap contributors 和 © CARTO。
支持
如果 Timeline Visualizer 对您有帮助,您可以留下一个可选的 一次性赞助。 支持表示欢迎,但并非必需,也不包括付费功能、 优先支持或对后续开发的承诺。
基于 MIT License 授权。