TMaps - API Cartographie Tunisie

Isochrone

Calculez la zone géographique atteignable depuis un point en N minutes ou N kilomètres. Réponse au format GeoJSON Polygon.

L’endpoint Isochrone calcule la zone atteignable depuis un point d’origine en un certain temps (en minutes) ou une certaine distance (en kilomètres). Le résultat est un polygone GeoJSON prêt à afficher sur une carte.

Endpoint

POST https://api.tmaps.tn/routing/isochrone?api_key=YOUR_API_KEY

Paramètres

Body JSON

Param Type Requis Défaut Description
origin object oui Point de départ { lat, lng }.
contours array oui Liste de contours à calculer. Chaque contour est { time: minutes } ou { distance: km }. Vous pouvez en demander plusieurs dans une même requête.
profile string driving Profil de transport : driving, walking, cycling, truck.
colors array Couleur HTML (hex) à associer à chaque contour pour faciliter le rendu (ex. ['#22c55e', '#f59e0b', '#ef4444']).

Limites

  • Temps max : 60 minutes par contour.
  • Distance max : 50 km par contour.
  • Nombre max de contours : 4 par requête (pour des isochrones empilées).

Exemple — zone de chalandise 15 minutes en voiture

curl -X POST "https://api.tmaps.tn/routing/isochrone?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "origin":   { "lat": 36.8002, "lng": 10.1815 },
  "contours": [{ "time": 15 }],
  "profile":  "driving"
}'

Exemple — isochrones empilées (5 / 10 / 15 min)

const res = await fetch(
'https://api.tmaps.tn/routing/isochrone?api_key=YOUR_API_KEY',
{
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    origin: { lat: 36.8002, lng: 10.1815 },
    contours: [
      { time: 5 },
      { time: 10 },
      { time: 15 },
    ],
    profile: 'driving',
    colors: ['#22c55e', '#f59e0b', '#ef4444'],
  }),
}
);
const geojson = await res.json();
// → 3 features dans le FeatureCollection

Réponse

La réponse est un FeatureCollection GeoJSON : une feature par contour demandé, dans le même ordre que la requête.

200 Zone atteignable en 15 minutes en voiture depuis le centre de Tunis
{
"type": "FeatureCollection",
"features": [
  {
    "type": "Feature",
    "properties": {
      "contour": 15,
      "metric": "time",
      "color": "#22c55e"
    },
    "geometry": {
      "type": "Polygon",
      "coordinates": [[
        [10.0801, 36.8412],
        [10.1240, 36.8650],
        [10.2308, 36.8580],
        [10.2620, 36.8011],
        [10.2210, 36.7530],
        [10.1100, 36.7480],
        [10.0801, 36.8412]
      ]]
    }
  }
]
}

Champs renvoyés

Properties d'une feature

Param Type Requis Défaut Description
contour number Valeur du contour : nombre de minutes ou nombre de kilomètres.
metric string time ou distance selon ce qui a été demandé.
color string Couleur associée au contour, si fournie en entrée. Pratique pour styliser directement la couche cartographique.

Ordre d'affichage

Si vous demandez plusieurs contours empilés, dessinez le plus grand (15 min) en arrière-plan et le plus petit (5 min) au premier plan, pour obtenir un effet de niveaux concentriques.

Cas d’usage

  • Géomarketing & retail : zones de chalandise pour ouvrir un nouveau point de vente.
  • Immobilier : afficher « toutes les écoles à 10 min à pied de ce bien ».
  • Logistique : zones desservables par un dépôt en moins de 30 min.
  • Urgences : couverture d’une caserne / d’un hôpital en 5 min.

Erreurs

StatutCause
400origin manquant, time > 60 ou distance > 50
401api_key manquant ou révoqué
403Domaine non autorisé
404Origine hors zone de couverture

Voir Codes d’erreur pour la liste complète.