/map-route : deux lieux, une carte 3D, l'itinéraire qui se dessine
L'utilisateur nomme deux lieux (« Times Square vers Empire State », « Londres vers Paris », « mon hôtel à Lisbonne jusqu'à l'aéroport »). Vous les trouvez, obtenez l'itinéraire réel, vérifiez une image, rendez la vidéo et remettez un MP4 silencieux (environ 4,5 secondes).
${CLAUDE_SKILL_DIR} ci-dessous est le dossier de cette compétence (celui où se trouve ce SKILL.md). Si votre environnement ne le remplit pas, utilisez le chemin de ce dossier. Enregistrez tout dans le dossier actuel de l'utilisateur, ou dans le dossier qu'il nomme. Cette compétence nécessite une connexion Internet (recherches de cartes, itinéraires et tuiles cartographiques).
0. Vérification de l'installation
python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" --check
Cela prend quelques secondes ; exécutez-le si vous n'êtes pas sûr que cet ordinateur soit configuré. "ready": true signifie que tout est ok. Sinon, exécutez les commandes listées sous "fix", en indiquant à l'utilisateur qu'il s'agit d'une installation unique : python3 -m pip install playwright (le pilote de navigateur), python3 -m playwright install chromium (uniquement si Google Chrome ou Edge n'est pas installé, environ 150 Mo) et python3 -m pip install imageio-ffmpeg (uniquement si ffmpeg est manquant). Si pip refuse avec « externally managed environment », créez un environnement privé une fois et utilisez son Python pour chaque commande :
python3 -m venv ~/.animate-skills && ~/.animate-skills/bin/pip install playwright imageio-ffmpeg, puis
~/.animate-skills/bin/python -m playwright install chromium si nécessaire. Sous Windows, utilisez py au lieu de python3.
1. Trouver les lieux et l'itinéraire
Rendez chaque lieu suffisamment précis pour une recherche cartographique : ajoutez la ville (et le pays si ambigu) : « Empire State » → « Empire State Building, New York ». Ensuite :
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>-<à>.json
--labels: les noms courts affichés sur les épingles et la carte.--mode:auto(par défaut : marche sous 4 km en ligne droite, voiture sous 900 km, vol au-delà ou quand aucune route ne les relie),walk,bike,drive,fly. Utilisez ce que l'utilisateur a demandé (« conduire de… », « voler vers… »). Deux sites dans la même ville sont généralement une marche : passez--mode walkjusqu'à ~5 km sauf indication contraire.--style:light(par défaut),dark,color.--title "…"remplace la ligne « A → B » sur la carte.--units:auto(miles quand les deux lieux sont aux États-Unis ou au Royaume-Uni),metric,imperial.--size:1080x1920(par défaut),1080x1080,1920x1080.
Il affiche ce qu'il a trouvé. Vérifiez que les lignes from et to correspondent aux lieux voulus par l'utilisateur (la bonne ville, le bon bâtiment ; un musée peut s'afficher comme l'une de ses entrées, ce qui est acceptable). Sinon, rendez le texte de recherche plus précis et relancez-le, au maximum quelques fois : ce sont des serveurs communautaires gratuits, une requête à la fois.
Les lieux peuvent aussi être des coordonnées ("40.7580,-73.9855") ou des adresses postales.
2. Vérifier la dernière image
python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" map-<de>-<à>.json --still end --out map-<de>-<à>-verif.png
Regardez l'image (environ 10 secondes pour la créer) : les deux épingles et leurs noms à l'écran, l'itinéraire bien visible, la carte ok (distance, temps, mode) ?
3. Rendre la vidéo
python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" map-<de>-<à>.json --out map-<de>-<à>.mp4
Environ 30 à 60 secondes : chaque image attend les vraies tuiles cartographiques. Si un rendu sort noir ou vide, ajoutez --no-gpu. Supprimez l'image de vérification.
4. Remettre
Donnez à l'utilisateur le chemin du MP4 (affichez-le si votre environnement peut afficher des fichiers), avec la distance et le temps qu'il indique. Il n'a pas de son. Proposez une variante (le style sombre, un autre mode, une version plus longue).
La spécification est en JSON simple : vous pouvez modifier les noms des épingles (from.name, to.name), title, subtitle (remplace la ligne de distance), style, color (la couleur de l'itinéraire) ou duration (secondes, par défaut ~4,5 ; une durée plus longue ralentit tout le mouvement, par ex. 7 pour une version plus calme) et rendre à nouveau sans refaire de recherche.
Sans accès Internet
La carte a besoin de tuiles cartographiques en direct et des serveurs de routage. Dans un environnement sans accès réseau (ou sans navigateur), informez-en l'utilisateur au lieu de dessiner une carte fictive.
Données cartographiques © Contributeurs OpenStreetMap (ODbL), tuiles par OpenFreeMap (schéma OpenMapTiles), itinéraires par OSRM sur les serveurs FOSSGIS. La ligne d'attribution reste sur la vidéo.