Ich baue ein Routenplanungssystem auf, aber ich muss noch entscheiden, welche zugrunde liegende Routing-Engine ich verwenden werde. Bisher habe ich pgrouting und neo4j gefunden.
Ich habe mein Streckennetz in einer postgresql / postgis-Datenbank (aus einem Shapefile importiert). Ich habe Abfragen gemacht, um Knoten zu extrahieren (Endpunkte von Wegen, an denen Sie eine Entscheidung treffen müssen, in welche Richtung oder in Sackgassen) und um Kanten zu extrahieren (die oft aus mehreren aufeinanderfolgenden Wegen bestehen). Alle meine Kanten sind bidirektional.
Mein Hauptziel ist es, Routen in diesem Netzwerk mit einem A-Stern-Algorithmus zu berechnen, bei dem Entfernung = Kosten.
Mein Gefühl sagt mir, dass eine Graph-Datenbank wie neo4j der richtige Weg ist (wie es scheint, für diesen Zweck gemacht zu sein), aber sie scheinen nicht standardmäßig A-Star zu unterstützen und es gibt auch keinen wirklichen Sinn für Geometrie . Es scheint besser für soziale Netzwerke geeignet zu sein als für Karten.
- Würde das Verfugen meine Bedürfnisse erfüllen?
- Ist es schnell genug für On-the-Fly-Abfragen (+ -2000 Knoten, + -4000 Kanten)? Normalerweise wäre dies ein paar ms für A-Star, aber ich bin nicht sicher über diese Implementierung in SQL.
- Gibt mir das Verfugen eines A-Sterns eine Liste von Knoten und Kanten?
- In den meisten Beispielen, die ich über das Verfugen sehe, stelle ich fest, dass es normalerweise eine Liste von Befehlen nach der Berechnung der Route gibt (wie "An X nach links abbiegen, usw."). Produziert Pgrouting dies oder stammt es von einem anderen System?
Hoffentlich kann mir jemand einige Informationen über das zu wählende System geben. Neo4j, Pgrouting oder ein anderes System.