PgRouting : pgr_withpoints 문제

Dec 08 2020

내 다음 다른 질문 이 아닌 네트워크 라우팅을 통합에 대한, 나는이 질문에 제안 된 코드를 사용하여와 포인트 기능을 시도했습니다.

문제는 이러한 기능을 사용하여 최단 경로를 얻지 못한다는 것입니다.

설명을 위해 분홍색 폴리 라인은 With-points 결과를 나타내고 녹색 폴리 라인은 Dijkstra의 결과를 나타냅니다.

수정 됨

with_points 경로를 계산하는 데 사용한 코드는 다음과 같습니다.

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은 내 에지 테이블, -888888 및 -607은 시작 및 끝점 ID입니다.

답변

1 JGH Dec 08 2020 at 21:11

당신은 지정한 cost아니지만을 reverse_cost그렇게, 기본 의 -1세그먼트를 의미, 사용이 무시됩니다.

시도해 볼 수 있습니다.

'SELECT id, source, target, st_length(the_geom) as cost, st_length(the_geom) as reverse_cost FROM vr',