>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Kotlin

Googleの位置情報履歴を滑らかなルート動画に変換する方法

最近、興味深いリポジトリを見つけました:google-timeline-visualizer。このプロジェクトは、Google Mapsからエクスポートした位置情報履歴(Timeline.json)を取得し、選択した期間の旅行のマップを含むアニメーションMP4動画にまとめます。

Videos library

数年前に、Googleは位置情報履歴をクラウドからユーザーのデバイスに徐々に移行し始めました。現在、このデータは座標、セグメント、アクティビティマーカーなど複雑な構造を持つかさばったJSONファイルとしてローカルに保存されています。プロジェクト作者は最初は個人的な使用のためにPythonスクリプトを書き、その後ロジックをAndroid用のネイティブKotlinアプリとiOS用のWebバージョンに移植しました。

New video

このユーティリティできること

このユーティリティの主な目的はシンプルです:味気ない位置情報ポイントを、ソーシャルメディアに投稿しても恥ずかしくない、または vacationの思い出として保存できる楽しいアニメーションに変換することです。

興味深い機能がいくつかあります:

  • GPSノイズフィルタリング。スマホが衛星の捕捉を1秒間失い、隣の町に瞬間移動してしまった場合、アルゴリズムはそのような鋭い行き来のジャンプを切り取り、全体のルートラインを崩しません。
  • フライト補間。長い大陸間飛行は、大圏弧に沿ってスムーズになります。カメラはポイントAからポイントBにテレポートする代わりに、マーカーを追って測地線に沿って滑らかに飛びます。
  • スムーズなカメラトラッキング。毎日の都市通勤中、マーカーは固定された画面ゾーン内でわずかに彷徨い、その後マップがその背後でスムーズに動き始めます。これにより、信号待ちや交通渋滞での不快なジッターが解消されます。
  • 柔軟なレンダリング設定。再生時間を10秒から300秒に設定でき、モバイルストーリー用の縦形式1080×1920またはクラシックな横形式1080pを選択できます。

デスクトップでの実行方法

最初は、タイルとフレームの合成にFFmpegを使用したPythonスクリプトとしてプロジェクトが始まりました。デスクトップバージョンは今も動作します。

システムにPython 3.9+とFFmpegがインストールされている必要があります:

このスクリプトはさまざまな座標形式をサポートしています:標準配列、semanticSegments構造、E7座標、接頭辞付き文字列(geo:など)。

モバイルクライアントとWebバージョン

ターミナルを触りたくない場合、2つの готовыеオプションがあります:

  1. Android。リポジトリのリリースページに готовые APKが 利用可能です。アプリ はKotlinで書かれており、動画を 直接スマホのプロセッサーでレンダリングし、完成したクリップをシステムフォルダー(Movies)に 保存します。
  2. iPhone。SafariのWebインターフェースで動作します。ブラウザ内のハードウェアH.264エンコーダーがエンコーディングに使用されます。

Androidプロジェクトをゼロからビルドするには、JDK 17とAndroid SDK 36が必要です:

プライバシーに関する考慮事項

位置情報データは機密性が高いため、作者はレンダリングを厳密にローカルで行うようにしました。Googleアカウント認証やJSONのサードパーティーサーバーへの送信は一切ありません。

唯一のネットワーク通信は、OpenStreetMapベースのCARTOサービスからラスターマップタイルを読み込むことです。最初のマップを読み込む前に、アプリはこれらのネットワーク要求について 直接警告します。

誰が役立つか

このプロジェクトは、年末に旅行を可視化するのが好きな人にとって興味深いでしょう。モバイル開発者にもソースコード 查看をお勧めします:コードベースは、重い外部ライブラリなしでタイルマップとビデオストリームのレンダリングを整理する方法を示しています。

関連プロジェクト