PgRouting-最大コストに達したときにリンクをクリップする方法


13

道路ネットワークを表すポリラインシェープファイルと、ポイントを含む2つ目のシェープファイルがあります。PostGIS(おそらくPgRouting)を使用して、これらのポイントから放射されるサブネットワークまたはサービスエリアを特定したいと思います。

基本的に、「ポイントXから出発し、道路網に沿って1 kmの総旅行予算を与えられた場合、どの方向にどこまで歩くことができるか」という質問をしたいと思っています。その結果、1 kmの旅行予算が与えられた場合、旅行の可能性の全範囲を表すクリップされたポリラインのセットになります。

参考までに、このGRASS分析は、まさに私がやりたいことのように見えます(PostGISでこれを行いたい場合を除く):http: //www.gdf-hannover.de/lit_html/grass60_v1.2_en/node57.html#sec : optalloc

この次の例は、「X距離の旅行予算が与えられた場合、どのノードに旅行できますか?」という質問に答えているように見えることを除いて、ほとんど私がやりたいことのようです。http://underdark.wordpress.com/2011/02/12/drive-time-isochrones/

ポリラインを移動距離にクリップしたいので、2番目は探している答えではありません。ノードまで到達しても構いません。


私に起こる1つのオプションは、ポリラインを何とかして多くのポイントに分割することです。それは正しい答えに私を近づけますが、かなりハックのように見えます、そして、まだそこに私を全く連れて行きません。
ピーター

回答:


2

私が持っていたのは、1)driving_distanceルーチンを実行し、2)pgRoutingの "points_as_polygon"ルーチン(alphashape関数を呼び出す)を使用して、driving_distanceルーチンのポイントに基づいて特定のコスト距離で最小のポリゴンを生成することでした戻り値。次に、ポリゴン内のすべての道路を選択して、旅行の一般的なアイデアを得ることができます。

pgRouting users listの議論に従っていない場合、彼らは最近より多くのオプションについて議論しています(2011年5月と6月のスレッド)。


1
興味深いユーザーリストのディスカッション。driving_distance関数がバグだらけです。
暗闇

1

これは実際にはグラフの問題であるため、必要なのは接続性/トポロジ+コスト情報です。pg_routingの場合、それは最短パスアルゴリズムに送信するテーブルです。この記事には、1つを構築する方法に関する情報があります(既にお持ちの場合)。申し訳ありませんが、これを行うpg_routingで正確な関数を指定することはできませんが、作成することはできます。ただし、shortest_pathを何度も呼び出し続けると、以下のアルゴリズムを繰り返し実行し、結果を破棄することになります-まったく効率的ではありません。

ソリューションは、「ウォークドリスト」に追加し、予算(距離)が超過するまでコストを計算しながら、すべてのエッジをウォークスルーします。予算が受け入れ可能な場合(つまり、予算が過剰に引き出されていない場合)、ジオメトリを「受け入れ可能なリストジオメトリバッグ」に追加します。各エッジを1回だけ処理する必要があります。最後のエッジ(予算が過剰に引き出される)については、長さを取得し、移動したい正確な距離を内挿する必要があります。次に、結果を「許容リスト」に追加します。結果は、そのジオメトリバッグの結合です。


1
最後のステップには微妙な点があります。端点のいずれかからいくつかのエッジに到達できます。これにより、いずれかのエンドポイントからエッジ全体をトラバースすると予算の制限を超えても、両端の一部またはエッジ全体が含まれることがあります。 たとえば、単位長辺{(a、b)、(a、c)、(b、c)}および1.6の予算を持つ無向グラフに沿ったポイントaからの移動を検討します。1のコストでbまたはcのいずれかに到達でき、0.6を使用できます。これにより、エッジ(b、c)に沿ったすべてのポイントがアクセス可能になります。
whuber

あなたは正しいです:) +1
ラギヤセルバーフム

1

「ポイントXから出発し、道路網に沿って1 kmの総旅行予算を与えられた場合、どの方向にどこまで歩くことができますか?」

小さな領域(最大半径1km)のみを考慮する必要があるため、リンクを複数の小さな断片に分割し(達成する精度に応じて)、必要なノードを作成することでおそらく回避できます。結果として得られる「高解像度」ネットワークは、依然として管理可能です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.