谷歌时间线可视化工具

mahlernim/google-timeline-visualizer 访问 GitHub ↗
🔤 Kotlin ★ 2564 ⑂ 0 daily #12 (+441) 抓取 2026-08-23

一句话简介

基于 Kotlin 开发的谷歌位置时间线数据可视化工具,可解析并直观展示用户的地理位置历史记录。

标签

  • Kotlin
  • 数据可视化
  • 谷歌时间线
  • 位置数据
  • 地图分析

适用应用场景

  • 解析并可视化个人谷歌位置历史
  • 分析出行轨迹与常去地点
  • 导出时间线数据进行二次分析
  • 学习 Kotlin 与地图可视化开发

README 中文摘要

项目概述

Timeline Visualizer 是一款将 Google Maps 导出的时间线(Timeline)文件转换为可分享的旅行动画视频的工具,支持 Android 应用与 iPhone 网页版,以及 Python 桌面版本。项目主打本地化处理:时间线数据全程不上传,视频渲染在设备端完成,仅地图瓦片会向 CARTO 发起网络请求。

核心功能

  • 时间线可视化:将 Timeline.json 中的坐标、路径、出行方式与停留点渲染为带动画标记的移动地图。
  • 灵活的日期选择:支持按月份范围或精确日期筛选,范围可跨越年份,最新完整年份为默认起点。
  • 多档输出规格:提供正方形 480p、720p、1080p,以及竖屏 1080×1920 与横屏 1920×1080 五种预设。
  • 可配置相机运动:固定相机保持单一缩放层级,动态相机则更紧密地跟随局部移动。
  • 长行程压缩:仅改变动画节奏,不改动路线几何形状,使长途行程渲染更高效。
  • GPS 异常过滤:默认采用保守过滤策略,忽略孤立的异常往返坐标,并在报告中标注忽略数量。
  • 大圆插值:长距离飞行等稀疏路线沿大圆路径插值,避免镜头跳跃。

技术架构

  • Android 端使用原生开发(Kotlin/Java),最低支持 Android 8.0(API 26)。
  • 构建依赖:JDK 17、Android SDK Platform 36、Build Tools 36.0.0,使用 Gradle 任务完成测试、Lint 与打包。
  • 视频编码依赖设备硬件 H.264 支持;iPhone 网页版要求 Safari 16.4 及以上。
  • 桌面 Python 版本基于 FFmpeg + MoviePy 等依赖(见 requirements.txt),支持命令行参数配置。

关键 CLI 用法

桌面版提供 visualizer.py 主入口,常用参数如下:

# 指定年份、稳定相机、长行程压缩,输出 mp4
python visualizer.py --input Timeline.json --year 2025 \
  --camera-movement steady --long-trip-compression balanced \
  --output my_trip_2025.mp4

构建与测试:

./gradlew test lint assembleGithubDebug assemblePlayDebug
python -m pip install -r requirements-dev.txt
python -m pytest

工作流程(移动端)

  1. 在手机设置或 Google Maps 中导出 Timeline.json
  2. 应用内选择文件,按月份范围或精确日期筛选。
  3. 设置命名模板(支持 {year}{name} 占位符)和时长(10–300 秒)。
  4. 预览动画地图,确认效果后生成视频。
  5. Android 10 及以上自动保存至 Movies/Timeline Visualizer,更低版本调用系统「另存为」对话框。

视频完成后自动加入「我的视频」库,包含缩略图、时间段、时长与创建日期等元数据,并提供分享、外置播放器回退等快捷操作。

支持的导出格式

  • 当前 Android/iOS 直数组格式
  • 旧的 semanticSegments 结构
  • 可选的原始定位回退(含本地降噪与提示)
  • 路径、活动与访问三类记录
  • 字符串、latLng、度数值、geo: URI 与 E7 整数编码
  • 跨越国际日期变更线的路线

隐私与安全

  • 不集成 Google 登录、定位权限、统计分析或宽泛存储权限。
  • 仅读取用户主动选择的 JSON 与视频文件。
  • 第一次加载时间线前显示底图数据流向说明并允许取消。
  • 默认视频标题使用用户可编辑的手机名称,无需账号授权。

多语言与开源

应用支持英语、韩语、日语、简体中文、繁体中文、西班牙语、法语、德语、巴西葡萄牙语九种语言。地图归属信息(OpenStreetMap 与 CARTO)会在每个预览与导出的视频中显示。项目以 MIT 许可证开源。

摘要更新于 2026-08-22 00:30:30 · 原文 10336 字符 · md5 b4b8fea4089b…