PgRouting: Problem mit pgr_withpoints
Nach meiner anderen Frage zum Routing ohne Netzwerkintegration habe ich die With-Points-Funktionen unter Verwendung des in der Antwort vorgeschlagenen Codes ausprobiert.
Das Problem ist, dass ich mit diesen Funktionen nicht den kürzesten Weg bekomme
Zur Verdeutlichung steht die rosa Polylinie für das With-Points-Ergebnis und die grüne für das Dijkstra-Ergebnis
Bearbeitet
Der Code, den ich zur Berechnung der with_points-Route verwendet habe, lautet
SELECT *
FROM pgr_withPoints(
'SELECT id, source, target, st_length(the_geom) as cost FROM vr',
'SELECT pnt.id AS pid,
edg.edge_id,
edg.fraction
FROM points_table AS pnt
CROSS JOIN LATERAL (
SELECT id AS edge_id,
ST_LineLocatePoint(the_geom, pnt.geom) AS fraction
FROM vr
ORDER BY
the_geom <-> pnt.geom
LIMIT 1
) AS edg',
-888888, -607,
details := TRUE
);
vr ist meine Kantentabelle, -888888 und -607 sind Start- und Endpunkt-ID

Antworten
Sie haben ein, cost
aber kein a angegeben reverse_cost
, daher wird der Standardwert von -1
verwendet, was bedeutet, dass das Segment ignoriert wird.
Sie können mit versuchen
'SELECT id, source, target, st_length(the_geom) as cost, st_length(the_geom) as reverse_cost FROM vr',