>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Kotlin

Como Transformar Seu Histórico de Localização do Google em Vídeos de Rotas Suaves

Recentemente encontrei um repositório interessante: google-timeline-visualizer. O projeto pega exports brutos do histórico de localização do Google Maps (Timeline.json) e assembla eles em um vídeo MP4 animado com um mapa das suas viagens para o período selecionado.

Biblioteca de vídeos

Há alguns anos, o Google começou a mover gradualmente o histórico de localização da nuvem para os dispositivos dos usuários. Agora esses dados ficam localmente em arquivos JSON volumosos com uma estrutura complexa de coordenadas, segmentos e marcadores de atividade. O autor do projeto primeiro escreveu um script Python para uso pessoal, e depois portou a lógica para um app nativo em Kotlin para Android e uma versão web para iOS.

Novo vídeo

O que a ferramenta pode fazer

O propósito principal da ferramenta é simples: transformar pontos de localização secos em uma animação agradável que você não terá vergonha de postar nas redes sociais ou guardar como uma lembrança das suas férias.

Aqui estão algumas soluções interessantes:

  • Filtragem de ruído GPS. Se o seu celular perder o sinal do satélite por um segundo e te enviar para a cidade vizinha, o algoritmo corta esses saltos bruscos de ida e volta e não quebra a linha geral da rota.
  • Interpolação de voos. Voos intercontinentais longos são suavizados ao longo de um arco de grande círculo. A câmera voa suavemente ao longo da linha geodésica seguindo o marcador, em vez de se teletransportar do ponto A ao ponto B.
  • Rastreamento suave de câmera. Durante deslocamentos diários na cidade, o marcador pode vagar levemente dentro de uma zona fixa da tela, e só então o mapa começa a se mover suavemente por trás dele. Isso elimina tremores desagradáveis em sinais de trânsito e em congestionamentos.
  • Configurações flexíveis de renderização. Você pode definir a duração de 10 a 300 segundos, escolher o formato vertical 1080×1920 para stories mobile ou o clássico horizontal 1080p.

Como executar no desktop

Inicialmente, o projeto evoluiu como um script Python usando FFmpeg para costurar tiles e frames. A versão desktop ainda funciona.

Você vai precisar de Python 3.9+ e FFmpeg instalado no seu sistema:

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

O script suporta diferentes formatos de coordenadas: arrays padrão, estrutura semanticSegments, coordenadas E7 e strings com prefixos geo:.

Clientes móveis e versão web

Se você não quer mexer com o terminal, existem duas opções prontas:

  1. Android. Um APK pronto está disponível nos releases do repositório. O app é escrito em Kotlin, renderiza vídeo diretamente no processador do celular e salva os clipes finalizados na pasta do sistema Movies.
  2. iPhone. Funciona através de uma interface web no Safari. O encoder de hardware H.264 no navegador é usado para a codificação.

Para construir o projeto Android do zero, você vai precisar de JDK 17 e Android SDK 36:

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

Considerações sobre privacidade

Dados de localização são sensíveis, então o autor tornou a renderização estritamente local. Não há autorização de conta Google ou envio de JSON para servidores de terceiros aqui.

A única interação com a rede é carregar tiles de mapa raster do serviço CARTO baseado em OpenStreetMap. Antes de carregar o primeiro mapa, o app avisa diretamente sobre essas requisições de rede.

Para quem será útil

O projeto será interessante para quem gosta de encerrar o ano e visualizar suas viagens. O código fonte também vale a pena conferir para desenvolvedores mobile: a base de código demonstra claramente como organizar renderização de mapa de tiles e stream de vídeo sem bibliotecas externas pesadas.

Projetos relacionados