Je construis un système de planification d'itinéraire, mais je dois encore décider quel moteur de routage sous-jacent j'utiliserai. Jusqu'à présent, j'ai trouvé pgrouting et neo4j.
J'ai mon réseau de routes dans une base de données postgresql / postgis (importée à partir d'un fichier de formes). J'ai fait des requêtes pour extraire des nœuds (points d'extrémité de voies où vous devez prendre une décision dans quelle direction aller ou impasses) et pour extraire des bords (souvent constitués de plusieurs façons consécutives). Tous mes bords sont bidirectionnels.
Mon objectif principal est de calculer des itinéraires sur ce réseau en utilisant un algorithme A-star où distance = coût.
Mon sentiment me dit qu'une base de données de graphes comme neo4j est le chemin à parcourir (car elle semble être faite uniquement dans ce but), mais ils ne semblent pas prendre en charge A-star par défaut et il n'y a pas non plus de véritable sens de la géométrie . Il semble mieux adapté aux réseaux sociaux plutôt qu'aux cartes.
- Le grouting répondrait-il à mes besoins?
- Est-il assez rapide pour les requêtes à la volée (+ -2000 nœuds, + -4000 bords)? Normalement, ce serait quelques ms pour A-star, mais je ne suis pas sûr de cette implémentation en sql.
- Le pgrouting A-star me donne-t-il une liste de nœuds et d'arêtes?
- Dans la plupart des exemples que je vois à propos du pgroutage, je remarque qu'il y a généralement une liste de commandes après le calcul de l'itinéraire (comme "À X, tournez à gauche, etc."). Le groutage produit-il cela ou est-ce à partir d'un autre système?
J'espère que quelqu'un pourra me donner des informations sur le système à choisir. Neo4j, pgrouting ou tout autre système.