Communitygithub.com

Compétence Cartes

Géocodage, POIs, itinéraires, fuseaux horaires via OpenStreetMap/OSRM.

Qu'est-ce que Compétence Cartes ?

Cette compétence fournit des fonctionnalités de géolocalisation en utilisant des sources de données ouvertes et gratuites. Elle comprend huit commandes (search, reverse, nearby, distance, directions, timezone, area, bbox) couvrant 44 catégories de points d'intérêt, sans dépendances Python autres que la bibliothèque standard. Aucune clé API n'est requise. Les données proviennent d'OpenStreetMap (Nominatim, Overpass API, OSRM) et de TimeAPI.io. La compétence est optimisée pour les robots de chat comme Telegram, gérant automatiquement les limites de débit des API DNS. Elle remplace l'ancienne compétence find-nearby et offre une recherche multi-catégories via le paramètre --near.

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Lord1Egypt/awesome-skill-forge/tree/HEAD/skills/maps

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Compétence Cartes ?

Intelligence de localisation utilisant des sources de données ouvertes et gratuites. 8 commandes, 44 catégories de POI, zéro dépendance (stdlib Python uniquement), aucune clé API requise.

Sources de données : OpenStreetMap/Nominatim, Overpass API, OSRM, TimeAPI.io.

Cette compétence remplace l'ancienne compétence find-nearby — toutes les fonctionnalités de find-nearby sont couvertes par la commande nearby ci-dessous, avec le même raccourci --near "<lieu>" et la prise en charge multi-catégories.

Quand utiliser

  • L'utilisateur envoie une épingle de localisation Telegram (latitude/longitude dans le message) → nearby
  • L'utilisateur souhaite les coordonnées d'un nom de lieu → search
  • L'utilisateur a des coordonnées et souhaite l'adresse → reverse
  • L'utilisateur demande des restaurants, hôpitaux, pharmacies, hôtels à proximité, etc. → nearby
  • L'utilisateur souhaite la distance ou le temps de trajet en voiture/marche/vélo → distance
  • L'utilisateur souhaite un itinéraire détaillé entre deux endroits → directions
  • L'utilisateur souhaite des informations de fuseau horaire pour un emplacement → timezone
  • L'utilisateur souhaite rechercher des POI dans une zone géographique → area + bbox

Prérequis

Python 3.8+ (stdlib uniquement — aucune installation pip nécessaire).

Chemin du script : ~/.hermes/skills/maps/scripts/maps_client.py

Commandes

MAPS=~/.hermes/skills/maps/scripts/maps_client.py

search — Géocoder un nom de lieu

python3 $MAPS search "Tour Eiffel"
python3 $MAPS search "1600 Pennsylvania Ave, Washington DC"

Retourne : lat, lon, nom d'affichage, type, cadre de délimitation, score d'importance.

reverse — Coordonnées vers adresse

python3 $MAPS reverse 48.8584 2.2945

Retourne : ventilation complète de l'adresse (rue, ville, état, pays, code postal).

nearby — Trouver des lieux par catégorie

# Par coordonnées (à partir d'une épingle de localisation Telegram, par exemple)
python3 $MAPS nearby 48.8584 2.2945 restaurant --limit 10
python3 $MAPS nearby 40.7128 -74.0060 hospital --radius 2000

# Par adresse / ville / code postal / point de repère — --near auto-géocode
python3 $MAPS nearby --near "Times Square, New York" --category cafe
python3 $MAPS nearby --near "90210" --category pharmacy

# Plusieurs catégories fusionnées en une seule requête
python3 $MAPS nearby --near "downtown austin" --category restaurant --category bar --limit 10

46 catégories : restaurant, cafe, bar, hospital, pharmacy, hotel, guest_house, camp_site, supermarket, atm, gas_station, parking, museum, park, school, university, bank, police, fire_station, library, airport, train_station, bus_stop, church, mosque, synagogue, dentist, doctor, cinema, theatre, gym, swimming_pool, post_office, convenience_store, bakery, bookshop, laundry, car_wash, car_rental, bicycle_rental, taxi, veterinary, zoo, playground, stadium, nightclub.

Chaque résultat inclut : name, address, lat/lon, distance_m, maps_url (lien cliquable Google Maps), directions_url (itinéraire Google Maps depuis le point de recherche), et des balises promues lorsqu'elles sont disponibles — cuisine, hours (ouverture), phone, website.

distance — Distance et temps de trajet

python3 $MAPS distance "Paris" --to "Lyon"
python3 $MAPS distance "New York" --to "Boston" --mode driving
python3 $MAPS distance "Big Ben" --to "Tower Bridge" --mode walking

Modes : driving (par défaut), walking, cycling. Retourne la distance routière, la durée, et la distance à vol d'oiseau pour comparaison.

directions — Navigation étape par étape

python3 $MAPS directions "Tour Eiffel" --to "Musée du Louvre" --mode walking
python3 $MAPS directions "Aéroport JFK" --to "Times Square" --mode driving

Retourne des étapes numérotées avec instruction, distance, durée, nom de rue, et type de manœuvre (turn, depart, arrive, etc.).

timezone — Fuseau horaire pour des coordonnées

python3 $MAPS timezone 48.8584 2.2945
python3 $MAPS timezone 35.6762 139.6503

Retourne le nom du fuseau horaire, le décalage UTC, et l'heure locale actuelle.

area — Cadre de délimitation et zone pour un lieu

python3 $MAPS area "Manhattan, New York"
python3 $MAPS area "Londres"

Retourne les coordonnées du cadre de délimitation, largeur/hauteur en km, et superficie approximative. Utile comme entrée pour la commande bbox.

bbox — Rechercher dans un cadre de délimitation

python3 $MAPS bbox 40.75 -74.00 40.77 -73.98 restaurant --limit 20

Trouve des POI dans un rectangle géographique. Utilisez area d'abord pour obtenir les coordonnées du cadre de délimitation pour un lieu nommé.

Travailler avec les épingles de localisation Telegram

Lorsqu'un utilisateur envoie une épingle de localisation, le message contient les champs latitude: et longitude:. Extrayez-les et passez-les directement à nearby :

# L'utilisateur a envoyé une épingle à 36.17, -115.14 et a demandé "trouve des cafés à proximité"
python3 $MAPS nearby 36.17 -115.14 cafe --radius 1500

Présentez les résultats sous forme de liste numérotée avec les noms, distances et le champ maps_url afin que l'utilisateur dispose d'un lien cliquable dans le chat. Pour les questions du type "ouvert maintenant ?", vérifiez le champ hours ; s'il manque ou n'est pas clair, vérifiez avec web_search car les horaires OSM sont maintenus par la communauté et ne sont pas toujours à jour.

Exemples de flux de travail

"Trouve des restaurants italiens près du Colisée" :

  1. nearby --near "Colisée Rome" --category restaurant --radius 500 — une commande, auto-géocodée

"Qu'est-ce qu'il y a près de cette épingle de localisation qu'ils ont envoyée ?" :

  1. Extrayez la lat/lon du message Telegram
  2. nearby LAT LON cafe --radius 1500

"Comment aller à pied de l'hôtel au centre de conférences ?" :

  1. directions "Nom de l'hôtel" --to "Centre de conférences" --mode walking

"Quels restaurants y a-t-il dans le centre-ville de Seattle ?" :

  1. area "Downtown Seattle" → obtenir le cadre de délimitation
  2. bbox S W N E restaurant --limit 30

Pièges

  • CGU de Nominatim : max 1 req/s (géré automatiquement par le script)
  • nearby nécessite une lat/lon OU --near "<adresse>" — l'un des deux est nécessaire
  • La couverture de routage OSRM est meilleure pour l'Europe et l'Amérique du Nord
  • L'API Overpass peut être lente aux heures de pointe ; le script bascule automatiquement entre les miroirs (overpass-api.de → overpass.kumi.systems)
  • distance et directions utilisent le drapeau --to pour la destination (pas positionnel)
  • Si un code postal seul donne des résultats ambigus à l'échelle mondiale, incluez le pays/l'état

Vérification

python3 ~/.hermes/skills/maps/scripts/maps_client.py search "Statue de la Liberté"
# Doit retourner lat ~40.689, lon ~-74.044

python3 ~/.hermes/skills/maps/scripts/maps_client.py nearby --near "Times Square" --category restaurant --limit 3
# Doit retourner une liste de restaurants dans un rayon d'environ 500m de Times Square

Individual skills in this repo

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

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a insurance agency. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generates a complete landing page with copy, layout, hero image, and responsive design from a text description. Use when launching a product quickly.

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a family law practice. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a fractional CFO firm. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a home remodeling company. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a HVAC service company. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a immigration law firm. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a CPA tax advisory firm. Use when handling offer...

Lord1Egypt/awesome-skill-forge

Generate a conversion-focused landing page that compares offers, pricing cues, and trust signals for a estate planning law firm. Use when handling...

Lord1Egypt/awesome-skill-forge

Fastest way to create or update a pawr.link profile. One curl command, $19 USDC to create, $0.10 to update. Patch-style update-links endpoint lets you add, remove, or move individual links without replacing the whole profile.

Lord1Egypt/awesome-skill-forge

Use this skill when the user wants to review today, look back on yesterday, reflect on this week, or wrap things up with a gentle, low-pressure reflection.

Lord1Egypt/awesome-skill-forge

Read-only queue dashboard for workspace-aware ship. (gstack)

Lord1Egypt/awesome-skill-forge

Landing page quality assessment for paid advertising campaigns. Evaluates message match, page speed, mobile experience, trust signals, form optimization, and conversion rate potential. Use when user says landing page, post-click experience, landing page audit, LP audit, conversion rate, landing page CRO, post-click CRO, or landing page optimization.

Lord1Egypt/awesome-skill-forge

Create HTML-based video compositions, animated title cards, social overlays, captioned talking-head videos, audio-reactive visuals, and shader transitions using HyperFrames. HTML is the source of truth for video. Use when the user wants a rendered MP4/WebM from an HTML composition, wants to animate text/logos/charts over media, needs captions synced to audio, wants TTS narration, or wants to convert a website into a video.

Lord1Egypt/awesome-skill-forge

Search arXiv papers by keyword, author, category, or ID.

Lord1Egypt/awesome-skill-forge

Delegate coding to OpenAI Codex CLI (features, PRs).

Lord1Egypt/awesome-skill-forge

Track Apple devices/AirTags via FindMy.app on macOS.

Lord1Egypt/awesome-skill-forge

Jailbreak LLMs: Parseltongue, GODMODE, ULTRAPLINIAN.

Lord1Egypt/awesome-skill-forge

Notion API + ntn CLI: pages, databases, markdown, Workers.

Lord1Egypt/awesome-skill-forge

p5.js sketches: gen art, shaders, interactive, 3D.

Skills associés