Communitygithub.com

maverickmaltin/map-route

Cria um vídeo de mapa 3D com a rota real se desenhando entre dois lugares (1080x1920 MP4). Use com /map-route para dois lugares, ou qualquer solicitação para animar uma rota, viagem ou direções.

O que é map-route?

Este skill gera vídeos animados em 3D mostrando uma rota real entre dois lugares, com o traçado sendo desenhado em tempo real. O usuário simplesmente nomeia dois locais (como 'Times Square até Empire State' ou 'Londres até Paris'), e o skill automaticamente encontra as coordenadas, calcula a rota (a pé, carro, bicicleta ou voo), renderiza um vídeo MP4 mudo de aproximadamente 4,5 segundos e entrega ao usuário. Suporta os principais agentes de IA (Claude Code, Cursor, Codex) e ambientes com acesso à internet e um navegador instalado. O skill é composto por scripts Python interativos: `route.py` para geolocalização e obtenção da rota, e `render.py` para geração do vídeo e verificação do quadro final. O usuário pode personalizar o estilo visual (claro, escuro, colorido), a cor da rota, o título e a duração. Ideal para apresentações de viagem, demonstração de trajetos ou projetos criativos. Requer instalação única das dependências Playwright e imageio-ffmpeg, e depende de dados cartográficos do OpenStreetMap, tiles do OpenFreeMap e roteamento OSRM.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/maverickmaltin/claude-animate-skills/tree/HEAD/skills/map-route

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

/map-route: dois lugares, um mapa 3D, a rota se desenhando

O usuário nomeia dois lugares ("Times Square até Empire State", "Londres até Paris", "meu hotel em Lisboa até o aeroporto"). Você os encontra, obtém a rota real, verifica um quadro, renderiza o vídeo e entrega um MP4 mudo (cerca de 4,5 segundos).

${CLAUDE_SKILL_DIR} abaixo é a pasta deste skill (a pasta onde este SKILL.md está). Se o seu ambiente não preencher isso, use o caminho dessa pasta. Salve tudo na pasta atual do usuário, ou na pasta que ele nomear. Este skill precisa de conexão com a internet (pesquisas de mapa, rotas e tiles de mapa).

0. Verificação de configuração

python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" --check

Leva alguns segundos; execute se não tiver certeza de que este computador está configurado. "ready": true significa que está pronto. Caso contrário, execute os comandos listados em "fix", informando ao usuário que é uma instalação única: python3 -m pip install playwright (o driver do navegador), python3 -m playwright install chromium (apenas quando Google Chrome ou Edge não estiver instalado, cerca de 150 MB) e python3 -m pip install imageio-ffmpeg (apenas quando ffmpeg estiver ausente). Se o pip recusar com "externally managed environment", crie um ambiente privado uma vez e use seu Python para todos os comandos: python3 -m venv ~/.animate-skills && ~/.animate-skills/bin/pip install playwright imageio-ffmpeg, depois ~/.animate-skills/bin/python -m playwright install chromium se necessário. No Windows, use py em vez de python3.

1. Encontre os lugares e a rota

Torne cada lugar específico o suficiente para uma pesquisa no mapa: adicione a cidade (e o país se for ambíguo): "Empire State" → "Empire State Building, New York". Em seguida:

python3 "${CLAUDE_SKILL_DIR}/scripts/route.py" "Times Square, New York" "Empire State Building, New York" \
  --labels "Times Square" "Empire State Building" --out map-<de>-<para>.json
  • --labels: os nomes curtos mostrados nos marcadores e no cartão.
  • --mode: auto (padrão: caminhada para menos de 4 km em linha reta, carro para menos de 900 km, voo para distâncias maiores ou quando não há estrada conectando-os), walk, bike, drive, fly. Use o que o usuário solicitou ("dirija de...", "voe para..."). Duas atrações na mesma cidade geralmente são a pé: passe --mode walk para até ~5 km, a menos que ele tenha dito o contrário.
  • --style: light (padrão), dark, color. --title "..." substitui a linha "A → B" no cartão.
  • --units: auto (milhas quando ambos os lugares estão nos EUA ou Reino Unido), metric, imperial. --size: 1080x1920 (padrão), 1080x1080, 1920x1080.

Ele imprime o que encontrou. Verifique se as linhas from e to são os lugares que o usuário quis dizer (a cidade certa, o prédio certo; um museu pode aparecer como uma de suas entradas, o que é aceitável). Se não, torne o texto da pesquisa mais específico e execute novamente, no máximo algumas vezes: estes são servidores comunitários gratuitos, uma solicitação por vez.

Lugares também podem ser coordenadas ("40.7580,-73.9855") ou endereços.

2. Verifique o último quadro

python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" map-<de>-<para>.json --still end --out map-<de>-<para>-check.png

Observe a imagem (cerca de 10 segundos para produzir): ambos os marcadores e seus nomes na tela, a rota clara, o cartão correto (distância, tempo, modo)?

3. Renderize o vídeo

python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" map-<de>-<para>.json --out map-<de>-<para>.mp4

Cerca de 30-60 segundos: cada quadro espera pelos tiles de mapa reais. Se a renderização ficar preta ou em branco, adicione --no-gpu. Apague a imagem de verificação.

4. Entregue

Dê ao usuário o caminho do MP4 (mostre-o se seu ambiente puder exibir arquivos), com a distância e o tempo que ele mostra. Não tem som. Ofereça uma variação (estilo escuro, outro modo, uma versão mais longa).

A especificação é JSON simples: você pode alterar os nomes dos marcadores (from.name, to.name), title, subtitle (substitui a linha de distância), style, color (a cor da rota) ou duration (segundos, padrão ~4,5; um mais longo desacelera todo o movimento, por exemplo, 7 para uma versão mais calma) e renderizar novamente sem pesquisar.

Sem acesso à internet

O mapa precisa de tiles de mapa ao vivo e servidores de roteamento. Em um ambiente isolado sem acesso à rede (ou sem navegador), informe o usuário em vez de desenhar um mapa fictício.

Dados de mapa © contribuidores do OpenStreetMap (ODbL), tiles por OpenFreeMap (esquema OpenMapTiles), rotas por OSRM nos servidores FOSSGIS. A linha de atribuição permanece no vídeo.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Habilidades Relacionadas