SmartRouting
Un moteur de création et de parcours de graphe
SmartRouting, intégré au menu Itinéraires de GeoConcept, est un moteur de création et de parcours de graphe qui permet de gérer plusieurs profils de véhicules (poids lourd, véhicule léger...) et qui accélère le calcul des matrices de distances, dix fois plus rapidement qu’auparavant.
Ce moteur prend également en compte de nombreuses règles de gestion personnalisables et offre une consommation mémoire optimisée ainsi que des performances de calcul accrues.
Par ailleurs, le calcul d’itinéraires se base sur une exploitation d’une feuille de route optimisée. Le calcul d’isochrones/isodistances repose sur une méthode de calcul reposant sur un maillage territorial dont la résolution est personnalisable. Enfin, une fonction de recherche de proximité fait également son apparition (bien connue des utilisateurs d’applications web). Preuve de l’utilisation croissante de ce langage, l’intégralité du menu a été développée en .NET.
SmartRouting est un moteur de calcul dédié au calcul d’itinéraires. Avec des temps de réponse se comptant en millisecondes, il permet des opérations élémentaires ou avancées telles que le calcul d’un itinéraire entre 2 points ou entre 1 point et plusieurs points, le calcul d’un distancier (au plus rapide et au plus court), la création de graphe et le calcul d’isochrone.
Les calculs d’itinéraire sont basés sur un fichier décrivant le réseau appelé graphe. Ce fichier est créé à partir du SIG GeoConcept (fonction « Création de graphe ») et d’une base de navigation routière, comme celles de Navteq.
SmartRouting permet d’obtenir un itinéraire complet, avec la description de la route (y compris le chemin que la route suit entre deux intersections), la durée de trajet entre chaque segment et la distance.
Le kit C de SmartRouting est une encapsulation C du moteur de SmartRouting sur lequel une application cliente peut s’appuyer. Le kit C est livré sous forme de bibliothèque (SmartRouting.dll pour les plates-formes Windows, libSmartRouting.so pour les plates-formes Linux/UNIX).
|
|
Indépendance du graphe généré par rapport à la carte |
SmartRouting est un programme indépendant du logiciel GeoConcept. Pour fonctionner, il utilise un graphe qui peut être généré directement grâce aux fonctions du kit ou bien via un add-on GeoConcept. Le graphe contient l’ensemble des géométries, la vitesse paramétrée de chaque tronçon, éventuellement certaines valeurs attributaires, le nom de la route, les champs qui renseignent sur le type de la route (rond-point, pont....). De plus, il est possible de faire des requêtes topologiques simples (dans un rectangle) pour renvoyer les linéaires faisant partie d’une zone choisie.
|
|
Gestion de nombreux cas particuliers |
|
|
gestion de filtres pour les calculs d’itinéraire (péages par exemple) ; |
|
|
gestion des croisements à différents niveaux (ponts, tunnels, ...) ; |
|
|
autres restrictions (interdiction tourner gauche, droite, sens uniques, ...) ; |
|
|
calculs dans les 2 sens de circulation (à partir du point de destination ou du point de départ) ; |
|
|
prise en compte de vitesses différentes pour chaque sens de circulation des tronçons ; |
|
|
autres restrictions (interdiction tourner gauche, droite, sens uniques, ...) ; |
|
|
possibilité de modifier les vitesses en temps réel (pour prise en compte du trafic en temps réel) ; |
|
|
possibilité de stocker plusieurs jeux de vitesse dans le graphe (pour camions, véhicules de tourisme...) ; |
|
|
gestion de micro-trajets (de façon à gérer les livraisons très rapprochées si nécessaire) ; |
|
|
possibilité de ne pas charger le graphe entièrement en mémoire (pour les graphes volumineux), le chargement dynamique du graphe permet d’optimiser la gestion de la mémoire de la machine et d’en retirer ainsi les meilleures performances ; |
|
|
géocodage inverse : recherche du linéaire le plus proche d’un point ; |
|
|
possibilité de travailler en multitâche et de faire plusieurs calculs en parallèle ; |
|
|
possibilité de travailler directement en longitude/latitude (WGS84) pour toutes les opérations (le graphe pouvant être généré en coordonnées projetés ou en coordonnées longitude/latitude). |
|
|
Utilisation des niveaux logiques des routes |
Les cartes Navteq divisent les routes en 5 niveaux par priorité qui sont les autoroutes, les nationales importantes plus les routes de liaisons entre ces divers tronçons routiers, au niveau local (très petites routes servant logiquement au début et à la fin de l’itinéraire uniquement).
SmartRouting permet d’utiliser ces niveaux de la façon suivante :
|
|
départ et fin des trajets en utilisant tous les niveaux ; |
|
|
entre ces 2 zones, utilisation uniquement des niveaux prioritaires (1 à 4 ou 1 à 3 selon les cas). |
SmartRouting utilise un système de niveaux logiques qui lui assure une vélocité très importante, avec des temps de réponse de quelques millisecondes pour des calculs pouvant atteindre de très grandes distances.
|
|
Types d’utilisation du moteur de calcul SmartRouting |
Le kit de SmartRouting peut être intégré :
|
|
pour réaliser des calculs d’itinéraires en mode batch ; |
|
|
pour réaliser des distanciers ; |
|
|
pour rechercher des points à proximité d’un point donné (en utilisant la distance routière) ; |
|
|
pour calculer des isochrones (possibilité de visualiser les « trous » dans un isochrone) ; |
|
|
pour chercher le linéaire le plus proche d’un point (géocodage inverse) ; |
|
|
pour proposer un serveur d’itinéraires gérant des conditions variables de façon dynamique, telles que les conditions de trafic, le type de véhicule utilisé (gestion des interdictions aux camions), ... ; |
|
|
afficher une feuille de route à l’utilisateur. |











