/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 walkpara 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.