PgRouting: pgr_withpoint समस्या

Dec 08 2020

नॉन-नेटवर्क इंटीग्रेटिंग रूटिंग के बारे में मेरे अन्य प्रश्न के बाद , मैंने उत्तर में प्रस्तावित कोड का उपयोग करके विथ-पॉइंट फ़ंक्शंस की कोशिश की है।

समस्या यह है कि मुझे इन कार्यों का उपयोग करते हुए सबसे छोटा रास्ता नहीं मिलता है

स्पष्टीकरण के लिए गुलाबी पॉलीलाइन विथ-पॉइंट रिजल्ट का प्रतिनिधित्व करता है और ग्रीन डेज़्स्ट्रा के परिणाम का प्रतिनिधित्व करता है

संपादित किया हुआ

जिस कोड को मैंने with_point मार्ग की गणना करने के लिए उपयोग किया है वह है

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 स्टार्ट एंड एंड पॉइंट आईडी हैं

जवाब

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',