Demander un itinéraire Tunis vers Sousse à une appli maps paraît trivial : deux secondes, un trait bleu, une heure et demie annoncée. Ce qui se passe derrière est moins simple, et surtout, la qualité de ce trait bleu dépend presque entièrement de la carte routière qui l'alimente. Quand on passe d'un usage occasionnel à un logiciel qui calcule des centaines d'itinéraires par jour pour des livreurs, ces détails deviennent votre principal poste de pertes ou de gains.
Un itinéraire, c'est un chemin dans un graphe
Un moteur de routing ne voit pas la carte comme vous. Il voit un graphe : des nœuds (les intersections) et des arêtes (les tronçons de route entre deux intersections). Chaque arête porte des attributs : longueur, vitesse autorisée ou estimée, sens de circulation, type de voie, restrictions de tourner. Calculer un itinéraire, c'est trouver dans ce graphe le chemin de moindre coût entre deux nœuds. Les algorithmes classiques (Dijkstra, A* et leurs variantes accélérées par pré-calcul) font ça en quelques millisecondes sur un pays de la taille de la Tunisie.
Le mot « coût » est celui qui compte. Si le coût d'une arête est sa longueur, vous obtenez le chemin le plus court. Si c'est son temps de parcours, vous obtenez le plus rapide. Les deux diffèrent souvent. Entre Sfax et Gabès, l'autoroute et la GP1 se valent presque en distance, mais pas en temps, parce que la nationale traverse Mahrès et Skhira au pas. Un moteur sérieux vous laisse choisir, et il gère aussi le profil du véhicule : une camionnette de trois tonnes n'a pas accès aux mêmes rues qu'un scooter dans le centre de Sousse.
Pourquoi la carte sous-jacente change tout
Voilà le point que beaucoup d'équipes sous-estiment. L'algorithme est standard, presque une commodité. Ce qui fait un bon ou un mauvais itinéraire, c'est le graphe. Et en Tunisie, le graphe est difficile à maintenir.
Prenez les sens uniques. Le centre de Tunis en est truffé, et ils changent. Une rue qui passe en sens unique sans que la carte le sache produit un itinéraire qui envoie le livreur à contresens, ou pire, un itinéraire légal mais absurde qui fait trois fois le tour du pâté de maisons. Même chose pour les ronds-points : mal modélisés, ils font apparaître des demi-tours impossibles ou des instructions du type « prenez la quatrième sortie » alors qu'il n'y en a que trois.
Prenez ensuite les routes nouvelles. Ennasr, Lac 2, les Jardins de Carthage, les extensions de Sahloul à Sousse, la zone de Sakiet Ezzit à Sfax : des quartiers entiers se sont construits en dix ans. Une carte qui ne les intègre pas fait rouler vos véhicules sur du vide, ou les fait contourner par une route existante à deux kilomètres. C'est là que la différence entre bases de données se voit le plus. Notre base compte plus de 120 000 routes sur les 24 gouvernorats, avec un effort particulier sur ces zones périurbaines où l'on trouve en moyenne deux fois plus de routes nommées que chez Google.
Prenez enfin le sud. Entre Kébili et Douz, entre Tataouine et les ksour du Dahar, une bonne partie des liaisons sont des pistes. Elles sont praticables, les habitants les empruntent tous les jours, mais leur vitesse réelle n'a rien à voir avec une route bitumée, et certaines deviennent impraticables après une pluie. Un graphe qui les classe comme des routes normales annonce des temps beaucoup trop optimistes. Un graphe qui les ignore rend une partie du pays inaccessible.
Dans la pratique, une équipe qui teste son moteur sur le trajet Tunis-Sousse par l'autoroute conclura que tout marche. Le vrai test, c'est un trajet entre deux adresses d'Ariana un mardi matin, ou une livraison à Médenine.
Maps itinéraire grand public ou API de routing : deux produits différents
Le trait bleu dans une appli maps grand public répond à une question : comment j'y vais, moi, maintenant. Une API de calcul d'itinéraire dans un logiciel répond à des questions différentes, et souvent plus nombreuses.
Dans un logiciel de livraison, vous ne demandez pas un itinéraire à l'écran. Vous en demandez cinquante à la fois, en arrière-plan, pour estimer l'heure d'arrivée de chaque colis. Vous voulez la géométrie du tracé pour la dessiner sur votre propre carte, la durée et la distance pour facturer, et éventuellement les instructions étape par étape pour le chauffeur. Vous voulez que tout ça revienne en moins d'une seconde, et que le prix par appel ne fasse pas exploser votre marge quand vous passerez de cent à dix mille commandes par jour.
L'usage métier ajoute aussi des contraintes que le grand public ignore : éviter les péages pour une flotte qui compte chaque dinar, forcer un point de passage obligatoire (le dépôt de Mégrine avant les livraisons de Ben Arous), calculer un trajet pour un poids lourd qui n'a pas le droit d'entrer dans certaines zones. Ces options existent dans notre API de calcul d'itinéraire, et la documentation en détaille les formats.
Matrice de distance et optimisation de tournée
Deux notions reviennent dès que vous avez plus d'un véhicule ou plus d'une adresse.
La matrice de distance répond à une question simple : entre N points de départ et M points d'arrivée, quel est le temps et la distance pour chaque combinaison ? C'est ce qui permet d'affecter la commande d'un client de La Marsa au livreur le plus proche en temps réel, ou de comparer trois dépôts pour choisir lequel sert une zone. Un appel, un tableau de résultats. Nous avons écrit un article complet sur l'API de matrices de distance si vous voulez creuser.
L'optimisation de tournée va un cran plus loin. Vous avez vingt livraisons à faire dans le Grand Tunis, un véhicule et une matinée : dans quel ordre passer pour finir au plus vite ? C'est un problème combinatoire, le fameux voyageur de commerce et ses variantes avec fenêtres horaires et capacité. On ne le résout pas à la main, ni en triant les adresses par gouvernorat. Le service s'appuie sur la matrice de distance et renvoie l'ordre de passage. Chez un client livreur à Sousse, le simple fait de calculer cet ordre plutôt que de laisser le chauffeur improviser a suffi à caser un arrêt de plus par tournée. Pour les détails, l'optimisation des itinéraires de livraison a droit à son propre article.
Si vous démarrez, commencez par un itinéraire simple entre deux adresses réelles de votre zone, comparez le temps annoncé avec le temps observé sur quelques trajets, puis ajoutez la matrice quand vous aurez plusieurs véhicules. Le service de routing TMaps est testable avec un compte gratuit, et si votre cas est particulier (pistes, poids lourds, zones à accès restreint), écrivez-nous via la page contact.