Compétence Opérations Géospatiales Mapbox
Guidance d'expert pour les assistants IA sur le choix des bons outils géospatiaux du serveur MCP Mapbox. Se concentre sur la sélection d'outils basée sur ce que le problème exige - calculs géométriques vs routage, ligne droite vs réseau routier, et besoins en précision.
Principe Central : Le Type de Problème Détermine le Choix de l'Outil
Le serveur MCP Mapbox fournit deux catégories d'outils géospatiaux :
- Outils Géométriques Hors Ligne - Utiliser Turf.js pour les calculs géométriques/spatiaux purs
- APIs de Routage et Navigation - Utiliser les APIs Mapbox quand vous avez besoin de routage réel, trafic ou temps de trajet
La question clé : Que le problème exige-t-il vraiment ?
Cadre de Décision
| Caractéristique du Problème | Catégorie d'Outil | Pourquoi |
|---|---|---|
| Distance en ligne droite (à vol d'oiseau) | Géométrique hors ligne | Précis pour distance géométrique |
| Distance route/chemin (comme en voiture) | API Routage | Seules les APIs de routage connaissent les réseaux routiers |
| Temps de trajet | API Routage | Requiert routage avec données vitesse/trafic |
| Containment de points (X est-il dans Y ?) | Géométrique hors ligne | Opération géométrique pure |
| Formes géographiques (buffers, centroïdes, aires) | Géométrique hors ligne | Opérations mathématiques/géométriques |
| Routage conscient du trafic | API Routage | Requiert données trafic en temps réel |
| Optimisation de route (meilleur ordre de visite) | API Routage | Algorithme de routage complexe |
| Vérifications haute fréquence (ex : géofencing temps réel) | Géométrique hors ligne | Réponse instantanée, pas de latence |
Matrices de Décision par Cas d'Usage
Calculs de Distance
L'utilisateur demande : "Quelle est la distance entre X et Y ?"
| Ce Qu'Ils Veulent Dire Réellement | Choix d'Outil | Pourquoi |
|---|---|---|
| Distance en ligne droite (à vol d'oiseau) | distance_tool |
Précis pour distance géométrique, instantané |
| Distance en voiture (comme en voiture) | directions_tool |
Seul le routage connaît la vraie distance routière |
| Distance marche/vélo (comme à pied/vélo) | directions_tool |
Besoin du réseau de chemins spécifique |
| Temps de trajet | directions_tool ou matrix_tool |
Requiert routage avec données vitesse |
| Distance avec trafic actuel | directions_tool (driving-traffic) |
Besoin de considération trafic temps réel |
Exemple : "Quelle est la distance entre ces 5 entrepôts ?"
- À vol d'oiseau →
distance_tool(10 calculs, instantané) - Comme en voiture →
matrix_tool(matrice 5×5, un appel API, retourne distances réelles)
Insight clé : Utiliser l'outil qui correspond à ce que "distance" signifie dans le contexte. Toujours clarifier : à vol d'oiseau ou comme en voiture ?
Proximité et Containment
L'utilisateur demande : "Quels points sont proches/à l'intérieur de cette zone ?"
| Type de Requête | Choix d'Outil | Pourquoi |
|---|---|---|
| "Dans X mètres de rayon" | distance_tool + filtre |
Rayon géométrique simple |
| "Dans X minutes en voiture" | isochrone_tool → point_in_polygon_tool |
Besoin routage pour zone temps de trajet, puis containment géométrique |
| "À l'intérieur de ce polygon" | point_in_polygon_tool |
Test de containment géométrique pur |
| "Accessible en voiture en 30 min" | isochrone_tool |
Requiert routage + trafic |
| "Plus proche de ce point" | distance_tool (géométrique) ou matrix_tool (routé) |
Dépend de la définition de "plus proche" |
Exemple : "Ces 200 adresses sont-elles dans notre zone de livraison de 30 minutes ?"
- Créer zone →
isochrone_tool(API routage - besoin temps de trajet) - Vérifier adresses →
point_in_polygon_tool(géométrique - 200 vérifications instantanées)
Insight clé : Routage pour créer zones temps de trajet, géométrique pour vérifications containment
Routage et Navigation
L'utilisateur demande : "Quel est le meilleur itinéraire ?"
| Scénario | Choix d'Outil | Pourquoi |
|---|---|---|
| Directions A vers B | directions_tool |
Routage virage par virage |
| Ordre optimal pour plusieurs arrêts | optimization_tool |
Résout problème du voyageur de commerce |
| Trace GPS nettoyée | map_matching_tool |
Accroche au réseau routier |
| Juste besoin de direction/compas | bearing_tool |
Calcul géométrique simple |
| Route avec trafic | directions_tool (driving-traffic) |
Awareness trafic temps réel |
| Points de passage ordre fixe | directions_tool avec waypoints |
Routage via points spécifiques |
Exemple : "Naviguer depuis l'hôtel jusqu'à l'aéroport"
- Besoin virage par virage →
directions_tool - Juste besoin savoir "c'est au nord-est" →
bearing_tool
Insight clé : Outils routage pour navigation réelle, outils géométriques pour info directionnelle
Opérations de Zone et Forme
L'utilisateur demande : "Créer une zone autour de ce lieu"
| Besoin | Choix d'Outil | Pourquoi |
|---|---|---|
| Buffer circulaire simple | buffer_tool |
Cercle/rayon géométrique |
| Zone temps de trajet | isochrone_tool |
Basé sur réseau routier |
| Calculer taille d'aire | area_tool |
Calcul géométrique |
| Simplifier limite complexe | simplify_tool |
Simplification géométrique |
| Trouver centre de forme | centroid_tool |
Centroïde géométrique |
Exemple : "Montrer couverture 5km autour de chaque magasin"
- Rayon 5km →
buffer_tool(cercles géométriques) - "Quels clients peuvent accéder en 15 min ?" →
isochrone_tool(basé routage)
Insight clé : Outils géométriques pour zones basées distance, outils routage pour zones basées temps
Considérations de Performance et Échelle
Quand le Volume Affecte le Choix d'Outil
Petites opérations (< 100 calculs) :
- Outils géométriques : Instantané, itérer librement
- APIs routage : Assez rapide pour la plupart des utilisations
Opérations moyennes (100-1 000 calculs) :
- Outils géométriques : Toujours rapides, pas de préoccupations
- APIs routage : Considérer opérations batch (matrix_tool)
Grandes opérations (> 1 000 calculs) :
- Outils géométriques : Peut nécessiter optimisation mais toujours rapides
- APIs routage : Utiliser définitivement outils batch (matrix_tool gère jusqu'à 25×25)
Insight clé : Volume affecte rarement choix outil géométrique, mais APIs routage ont outils batch pour efficacité
Temps Réel vs Batch
| Cas d'Usage | Approche | Choix d'Outil |
|---|---|---|
| Géofencing temps réel (chaque seconde) | Vérifications géométriques | point_in_polygon_tool (instantané) |
| Planification route (une fois) | Routage complet | directions_tool ou optimization_tool |
| Vérifications proximité périodiques | Distance géométrique | distance_tool |
| Routage trafic en direct | Routage avec trafic | directions_tool (driving-traffic) |
Note architecture pour géofencing haute fréquence : Si l'application appelle vérifications containment à très haute fréquence (ex : 50 véhicules toutes les 2 secondes = 25 vérifications/seconde), appeler outils MCP sur le réseau ajoute overhead raisonnement agent rendant impratique. Dans ces cas, recommander utiliser Turf.js directement en-process (turf.booleanPointInPolygon) pour le chemin critique, et réserver outils MCP pour tâches périphériques comme définition zone (isochrone_tool), reroutage (directions_tool), ou visualisation (static_map_image_tool).
Scénarios Courants et Approches Optimales
Scénario 1 : Localiseur de Magasin
Utilisateur : "Trouver le magasin le plus proche et montrer couverture 5km"
Approche optimale :
- Chercher magasins →
category_search_tool(retourne distances automatiquement) - Créer zone couverture →
buffer_tool(cercle géométrique 5km) - Visualiser →
static_map_image_tool
Pourquoi : Recherche donne déjà distances ; buffer géométrique pour rayon simple
Scénario 2 : Optimisation Route de Livraison
Utilisateur : "Optimiser livraison à 8 adresses/arrêts"
Approche optimale :
- Géocoder adresses (si nécessaire) → Utiliser
search_and_geocode_toolpour convertir adresses en coordonnées. Même quand coordonnées déjà fournies, mentionner comme étape optionnelle pré-routage — listes livraison réelles contiennent souvent mélange adresses et coordonnées. - Optimiser route →
optimization_tool(solveur TSP — réordonne arrêts pour minimiser temps conduite total)
Pourquoi optimization_tool et NON ces alternatives :
directions_toolroute seulement A → B (ou via waypoints ordre fixe). Ne réordonne PAS arrêts — si vous passez 8 arrêts, il les route dans l'ordre donné, ce qui est presque jamais optimal.matrix_tooldonne temps trajet entre toutes paires d'arrêts (8×8 = 64 valeurs), mais ne calcule PAS l'ordre optimal. Vous auriez besoin résoudre TSP vous-même sur la matrice —optimization_toolfait ça pour vous en un appel.
Toujours mentionner search_and_geocode_tool comme compagnon utile pour géocoder adresses livraison avant optimisation.
Scénario 3 : Validation Zone de Service
Utilisateur : "Lesquelles de ces 200 adresses peuvent nous livrer en 30 minutes ?"
Approche optimale :
- Créer zone livraison →
isochrone_tool(30 minutes voiture) - Vérifier chaque adresse →
point_in_polygon_tool(200 vérifications géométriques)
Pourquoi : Routage pour zone temps de trajet précise, géométrique pour vérifications containment rapides
Scénario 4 : Analyse Trace GPS
Utilisateur : "Quelle a été la durée de ce trajet à vélo ?"
Approche optimale :
- Nettoyer trace GPS →
map_matching_tool(accrocher aux pistes vélo) - Obtenir distance → Utiliser réponse API ou calculer avec
distance_tool
Pourquoi : Besoin accrochage route/chemin ; calcul distance fonctionne de toute façon
Scénario 5 : Analyse Couverture
Utilisateur : "Quelle est notre zone de service totale ?"
Approche optimale :
- Créer buffers autour chaque lieu →
buffer_tool - Calculer aire totale →
area_tool - Ou, si basé temps →
isochrone_toolpour chaque lieu
Pourquoi : Géométrique pour couverture distance, routage pour basée temps
Anti-Patterns : Utiliser le Mauvais Type d'Outil
❌ Ne pas : Utiliser outils géométriques pour questions routage
// FAUX : L'utilisateur demande "combien de temps pour conduire là ?"
distance_tool({ from: A, to: B });
// Retourne 10km à vol d'oiseau, mais vraie route est 15km
// CORRECT : Besoin routage pour distance voiture
directions_tool({
coordinates: [
{ longitude: A[0], latitude: A[1] },
{ longitude: B[0], latitude: B[1] }
],
routing_profile: 'mapbox/driving'
});
// Retourne vraie distance route et temps voiture comme en voiture
Pourquoi faux : À vol d'oiseau ≠ comme en voiture
❌ Ne pas : Utiliser APIs routage pour opérations géométriques
// FAUX : Vérifier si point dans polygon
// (Impossible avec APIs routage)
// CORRECT : Opération géométrique pure
point_in_polygon_tool({ point: location, polygon: boundary });
Pourquoi faux : APIs routage ne font pas containment géométrique
❌ Ne pas : Confondre "proche" avec "accessible"
// L'utilisateur demande : "Qu'est-ce accessible en 20 minutes ?"
// FAUX : 20 minutes distance à vitesse moyenne
distance_tool + calculate 20min * avg_speed
// CORRECT : Vrai routage avec réseau routier
isochrone_tool({
coordinates: {longitude: startLng, latitude: startLat},
contours_minutes: [20],
profile: "mapbox/driving"
})
Pourquoi faux : Routes ne sont pas lignes droites ; trafic varie
❌ Ne pas : Utiliser routage quand direction suffit
// L'utilisateur demande : "Dans quelle direction est l'aéroport ?"
// SURCOMPLIQU'E : Routage complet
directions_tool({
coordinates: [
{ longitude: hotel[0], latitude: hotel[1] },
{ longitude: airport[0], latitude: airport[1] }
]
});
// MIEUX : Juste besoin direction
bearing_tool({ from: hotel, to: airport });
// Retourne : "Nord-Est (45°)"
Pourquoi mieux : Plus simple, instantané, répond question réelle
Approches Hybrides : Combiner Types d'Outils
Certains problèmes bénéficient d'utiliser outils géométriques et routage :
Pattern 1 : Routage + Filtre Géométrique
1. directions_tool → Obtenir géométrie route
2. buffer_tool → Créer corridor autour route
3. category_search_tool → Trouver POIs dans corridor
4. point_in_polygon_tool → Filtrer à ceux vraiment sur route
Cas d'usage : "Trouver stations essence sur mon itinéraire"
Pattern 2 : Routage + Calcul Distance
1. category_search_tool → Trouver 10 lieux proches
2. distance_tool → Calculer distances ligne droite (géométrique)
3. Pour top 3, utiliser directions_tool → Obtenir temps voiture réel
Cas d'usage : Réduire rapidement, puis obtenir routage précis pour finalistes
Pattern 3 : Isochrone + Containment
1. isochrone_tool → Créer zone temps de trajet (routage)
2. point_in_polygon_tool → Vérifier centaines d'adresses (géométrique)
Cas d'usage : "Quels clients sont dans notre zone livraison ?"
Algorithme de Décision
Quand l'utilisateur pose question géospatiale :
1. Nécessite-t-il routage, routes, ou temps trajet ?
OUI → Utiliser API routage (directions, matrix, isochrone, optimization)
NON → Continuer
2. Nécessite-t-il awareness trafic ?
OUI → Utiliser directions_tool ou isochrone_tool avec profil trafic
NON → Continuer
3. Est-ce opération géométrique/spatiale ?
- Distance entre points (ligne droite) → distance_tool
- Containment points → point_in_polygon_tool
- Calcul aire → area_tool
- Buffer/zone → buffer_tool
- Direction/bearing → bearing_tool
- Centre géométrique → centroid_tool
- Boîte englobante → bounding_box_tool
- Simplification → simplify_tool
4. Est-ce opération recherche/découverte ?
OUI → Utiliser outils recherche (search_and_geocode, category_search)
Questions de Décision Clés
Avant choisir outil, demander :
-
"Distance" signifie-t-il à vol d'oiseau ou comme en voiture ?
- À vol d'oiseau (ligne droite) → outils géométriques
- Comme en voiture (distance route) → APIs routage
-
L'utilisateur a-t-il besoin temps trajet ?
- Oui → APIs routage (seules connaissent vitesses/trafic)
- Non → outils géométriques peuvent suffire
-
Est-ce à propos routes/chemins ou relations spatiales pures ?
- Routes/chemins → APIs routage
- Relations spatiales → outils géométriques
-
Doit-ce arriver en temps réel avec faible latence ?
- Oui + problème géométrique → outils hors ligne (instantané)
- Oui + problème routage → utiliser APIs routage (toujours rapide)
-
La précision est-elle critique, ou approximation OK ?
- Critique + routage → APIs routage
- Approximation OK → outils géométriques peuvent fonctionner
Guide Terminologie
Comprendre ce que les utilisateurs veulent dire :
| L'Utilisateur Dit | Signifie Généralement | Type d'Outil |
|---|---|---|
| "Distance" | Dépend contexte ! Demander : à vol d'oiseau ou voiture ? | Varie |
| "Quelle distance" | Souvent comme en voiture (distance route) | API Routage |
| "Près" | Généralement à vol d'oiseau (rayon ligne droite) | Géométrique |
| "Close" | Pourrait être soit - clarifier ! | Demander |
| "Accessible" | Basé temps de trajet (voiture avec trafic) | API Routage |
| "À l'intérieur/contient" | Containment géométrique | Géométrique |
| "Naviguer/directions" | Routage virage par virage | API Routage |
| "Direction/bearing" | Compass direction (à vol d'oiseau) | Géométrique |
Référence Rapide
Opérations Géométriques (Outils Hors Ligne)
distance_tool- Distance ligne droite entre deux pointsbearing_tool- Direction compas de A à Bmidpoint_tool- Point milieu entre deux pointspoint_in_polygon_tool- Point est-il dans polygon ?area_tool- Calculer aire polygonbuffer_tool- Créer buffer/zone circulairecentroid_tool- Centre géométrique polygonbbox_tool- Coordonnées min/max géométriesimplify_tool- Réduire complexité géométrie
Routage & Navigation (APIs)
directions_tool- Routage virage par viragematrix_tool- Temps trajet plusieurs-à-plusieursoptimization_tool- Optimisation route (TSP)isochrone_tool- Zones temps de trajetmap_matching_tool- Accrocher GPS à routes
Quand Utiliser Chaque Catégorie
Utiliser Outils Géométriques Quand :
- Problème spatial/mathématique (containment, aire, bearing)
- Distance ligne droite est appropriée
- Besoin résultats instantanés pour vérifications temps réel
- Géométrie pure (routes/trafic pas impliqués)
Utiliser APIs Routage Quand :
- Besoin distances voiture/marche/vélo réelles
- Besoin temps trajet
- Besoin considérer réseaux routiers
- Besoin awareness trafic
- Besoin optimisation route
- Besoin directions virage par virage
Intégration avec Autres Compétences
Fonctionne avec :
- mapbox-search-patterns : Chercher lieux, puis utiliser opérations géospatiales
- mapbox-web-performance-patterns : Optimiser rendu calculs géométriques
- mapbox-token-security : Assurer requêtes utilisent tokens portée appropriée
Ressources
- Serveur MCP Mapbox
- Documentation Turf.js (Alimente outils géométriques)
- API Directions Mapbox
- API Isochrone Mapbox
- API Matrix Mapbox
- API Optimization Mapbox