簡體   English   中英

pgr_drivingDistance,每條路線上的距離值靈活

[英]pgr_drivingDistance with flexible distance value on each route

我想使用pgsql計算與等時線相似的圖。 因此,我已經使用了算法pgr_drivingDistance 您提供起點和距離值並接收等時線。

使用該算法的輸出通過以下代碼接收:

SELECT * FROM pgr_drivingDistance(
        'SELECT id, source, target, cost FROM edge_table',
        2, 2, false -- starting point, distance, directed
      );

紅星代表起點。

現在,我想要一個工作原理相同的圖形,例如從一個點開始並獲得所有方向的路線。 所不同的是,我不想提供行進距離,而是要提供道路網絡上包含點坐標的列表。 各個方向上的路線都必須在每個路線上的第一個到達點處停止。 每條路線上的距離都不同,我不知道哪個點是最近的。

使用“停止”點(綠色顯示)的所需輸出應該看起來像這樣。

我已經嘗試過了:

  • 使用給定的算法pgr_drivingDistance並在每次未到達任何點時提高距離值->這里的問題是:所有方向的距離相等,而不是每個路線的距離。
  • 在每條路徑上使用算法pgr_dijkstra- >這里的問題:因為您不知道受影響的點,所以也不知道選擇哪個端點進行計算。 您也不能在附近采取最接近的路線,因為您需要在特定路線上最接近的路線。

我知道我必須構建一個幾乎完整的新算法,但也許有人對如何開始甚至是解決此類問題有一個想法。

先感謝您!

這是一對多的路由問題。 您必須計算到達每個端點的路線以找到最短的路線。 我最近沒有看過pgRouting函數,但我相信這里有一個一對多,多對一和多對多的Dijkstra函數。 您應該能夠使用一對多計算一次的所有潰敗,然后可以根據長度對潰敗進行排序以找到最短的潰敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM