Es ist schon eine Weile her, dass wir PostGIS verwenden, um unsere Geometrieinformationen in unserer Postgres-Datenbank zu speichern. Wir haben das Vertex-zu-Vertex-Routing mithilfe der iGraph-Bibliothek selbst entwickelt. Gestern habe ich über pgRouting gelesen und ich portiere unsere aktuelle Anwendung auf pgRouting. Ich habe jedoch einige Probleme bei der Verwendung des Startpfadsuchers.
Wir haben Kanten- und Scheitelpunktinformationen in Tabellen gespeichert. Um eine Diagrammroute mit Abbiegebeschränkung zu finden, rufen wir das folgende SQL-Skript auf:
SELECT shortest_path_shooting_star(
'SELECT e.id,
e.first as source,
e.second as target,
ST_Length(e.geom) as cost,
st_x(st_pointn(e.geom, 1)) AS x1, st_y(st_pointn(e.geom, 1)) AS y1,
st_x(st_pointn(e.geom, 2)) AS x2, st_y(st_pointn(e.geom, 2)) AS y2,
(not connected)::boolean::int * 1000000 AS to_cost,
c.first AS rule
FROM edges e LEFT OUTER JOIN edge_connections c ON e.id = c.second
WHERE e.group_id = 0
ORDER BY e.id',
1209560, 1209653, true, false);
Meine innere Unterfrage hätte folgende Ergebnisse:
id | source | target | cost | x1 | y1 | x2 | y2 | to_cost | rule
--------+---------+---------+----+------------------+------------------+---------+---------
1087134 | 926686 | 926687| 2.3299 |51.4675|35.728 |51.4675|35.7280| |
1209706 | 1039731 | 1039870 | 4.005 |51.4082|35.7239|51.4082|35.7239| 1000000 | 1209564
...
Wenn in den Ergebnissen eine Einschränkung vorhanden ist, sind rule und to_cost nicht NULL. Wenn eine Zugbeschränkung besteht, entsprechen die Ergebnisse genau den Angaben in den Dokumenten .
Wenn ich die shortest_path_shooting_star
Funktion rule
aufrufe , unterscheiden sich die Ergebnisse jedoch nicht, ob ein -und- to_cost
vorhanden ist oder nicht. Ich habe Richtung und has_reverse_cost
Parameter geändert , aber nichts ist passiert.
Ich habe mich gefragt, ob ihr mir in dieser Angelegenheit helfen könntet. Jeder Rat oder sogar ein Hinweis wäre sehr dankbar.