タグ付けされた質問 「pgrouting」

pgRoutingはPostGIS / PostgreSQL地理空間データベースを拡張して、地理空間ルーティング機能を提供します。

2
フィーダーバスサービス
まず第一に、少し背景。 私は地域の交通機関で働いています。フィーダーバスサービスの「診断」を行っています。車を利用する代わりにバスを利用して駅まで行くことができるユーザーの割合を知りたいのですが。これは何度かパスで行われましたが、現在はgtfsをメインデータソースとして使用しているため、方法論を再考する必要があります。 電車に「餌をやる」と見なされるには、バス路線が駅から一定の距離内に止まる必要があります(赤いバッファ)。また、バスが電車の30分前に駅に到着した場合、待ち時間が長すぎるため、朝20分以上眠って車に乗る必要があるため、電車サービスとの同期が非常に重要です。 12番線でラインA(青)に乗ったとします。13番バスでバスを降りると、バスは13番の停留所に到着します。それはとても良いことです。つまり、1から13までの停留所でそのバス路線を利用する全員が、その電車の5分前に到着するということです。 次に、列車は、学校や交差点がたくさんある非常に人口密度の高いエリアを通過するため、速度が大幅に低下します。一方、バスは14〜17番の停留所で乗客をピックアップし、その列車の10分前に第2駅に到着します。そのため、14〜17番の停留所でバスに乗車する乗客は、駅に到着したら、すべて10分の待ち時間があります。したがって、そのバス路線に沿って、1番から13番のバスに乗る乗客は5分の待ち時間を持ち、14番から17番のバスに乗る乗客は10分の待ち時間を持っています。 線路の反対側にあるラインBは、鉄道駅#1の近くを通過しますが、その停留所は、「給餌」鉄道駅#1を考慮するには遠すぎます。電車の7分前に駅#2に到着します(朝のラッシュアワー中に電車ごとに行ってください。非常によく同期しています)。したがって、B線沿いの乗客は、バスを停車場1から59までどこにでも連れて行くのに7分の待ち時間があります。 さて、私の質問です。LineA.13とLineA.17の停車地が私の列車に供給していることを確認したら(PostGISでは空間的に行われています)、#13の前の停留所でバスに乗るときの待ち時間は5分ですが、その後は待ち時間が10分の場合、すべてのストップにその待ち時間を割り当てるにはどうすればよいですか? Postgres / PostGIS(pl / pgsqlまたはpl / python)で実行したいのですが、純粋なpython(OSまたはarcpy)も使用できます。 逆にループできると思います。したがって、適切なストップ(ここではLineA.17)を見つけたら、同じ待機時間を16に割り当て、次に15 ...基準に合う別のストップ(LineA.13)を見つけて、残りを割り当てます。ストップの数は13と同じです。 しかし、そのようなループを作成する方法はわかりません。SQLではできないと思うので、PostgreSQLで手続き型言語を使用する必要があります。 私はpgRoutingを使用して各フィーダーストップ間のルートを見つけることで、ラインAが2つに分割されるようにしました(ストップ1から13、次にストップ13から17)。それは簡単でしょうか? 次のステップは、pgRoutingを使用して、待ち時間のあるすべてのストップからの運転時間を計算し(LineA.18以上に申し訳ありません!)、それをバスのスケジュールと比較して、競争力を計算します(5車でそれよりバスで数分?) 何か案は?私は通常、これまでに行った努力を示すために、長い進行中のスクリプトを投稿していますが、行き詰まっています!

3
pgroutingが有効になっているDBのOSMデータに基づいて、pgr_ *ルーティング関数が永久に実行されるのはなぜですか
osm2po 4.7.7を使用して、ドイツのOSMデータセットをpgrouting DBにロードしました。すべてが正常に動作します。osm2poをconfigで設定すると、Javaパーツを介して魅力的に動作します。 * _2po_4pgrテーブルを問題なくインポートしました。* 2po_vテーブルもインポートされますが、このテーブルの関係は完全にはわかりません。 6mのエッジすべてを計算している間、かなりの時間(12000秒)実行されたpgr_createTopology関数を実行しました。これでうまくいくと思いましたが、それでも耐え難いほど遅いです。 何か忘れてしまったら教えてください。私は、Javaライブラリーの代わりにpgRoutingを使用することを考えていましたが、現時点では、パフォーマンスに関しては比較対象外です。


1
トポロジを維持するラインネットワークを簡素化する方法
約250.000のセグメントを持つシェープファイル(ヨーロッパの主要道路からなる)があり、グラウチングのために単純化する必要があります。しかし、私はそれを適切に行う方法を見つけることができないようです。 これは次のようになります。 これは次のようになります。 残りのポイント間のトポロジー接続を維持しながら、3本未満のライン(交差ではない)に接続されているラインのすべてのポイントを削除する必要があります。誰かがアイデアを持っているなら、それは大歓迎です! 宜しくお願いします 編集:私は@dkastlのアイデアを実装しようとし、以下のコード(underdarkのブログhttp://underdark.wordpress.comから取得したネットワーク生成)を使用して、ネットワークから不要なノード(2つの隣接するラインストリングのみのノード)のみを取得することに成功しました/ 2011/02/07 / a-beginners-guide-to-pgrouting /): SELECT * FROM (SELECT tmp.id as gid, node.the_geom FROM (SELECT id, count(*) FROM network JOIN node ON (start_id = id OR end_id = id) AND (end_id = id OR start_id = id) GROUP BY id ORDER BY id) as tmp …

3
DARPサンプルの実行を支援する
DARPブランチをコンパイルしてインストールしました。テストするデータの例はありますか? ドキュメントの説明http://www.pgrouting.org/docs/1.x/darp.htmlに基づいて一部のデータを使用しましたが、結果が返されません。 depot_idとdepot_point_isの違いは何ですか? 距離クエリで、from_orderおよびto_orderフィールドが理解できません。 ポイントAからポイントBに行くためのリクエストを追加する場合、距離テーブルにポイントBからポイントAに行くコストを追加する必要がありますか? 距離クエリのフィールド値、時間単位は?、分?、秒?、ミリ秒?。 darp.cとdarp_solver.cはどこにログメッセージを残しますか? darpブランチがRCバージョンである可能性があることは知っていますが、これを手伝っていただけませんか。

3
pgRoutingを使用してGoogleマップの運転ルートをエミュレートするには?
Googleマップの運転ルート機能をエミュレートしたいのですが、代わりにpgRoutingを使用します。プロジェクトエリアと規模に関するgoogleのデータはかなりずれているため、postGISで独自のトランスポートネットワークデータを使用します。 ヒントはありますか? ありがとう。

2
ヒューリスティックなシューティングスターアルゴリズムの計算方法
流れ星のアルゴリズムに問題があります。それは私の最終プロジェクトであり、私はいくつかの助けが必要です。 私の質問は、ヒューリスティックなシューティングスターアルゴリズムをどのように計算できるかです。グラウティングシューティングスターを使用できますが、ヒューリスティックシューティングスターの計算方法がわかりません。 インターネットブックで計算ヒューリスティックシューティングスターを検索しましたが、今は見つかりません。 マリオさん、ソースコードだけでなく、シューティングスターアルゴリズムについて教えていただけますか?

2
pgroutingバージョンを確認するにはどうすればよいですか?
使用しているpgroutingのバージョンを確認する方法はありますか? 私のOSはubuntu 12.04です。 1.05バージョンにはシューティングスタートと有向グラフに関するいくつかの問題があり、このアルゴリズムが1.03である最後の安定バージョンがあるため、私は私のpgroutingバージョンを知りたいです。
8 pgrouting 

1
pgRoutingでshortest_path_shooting_star()を使用するにはどうすればよいですか?
PostGISを使用して、ジオメトリ情報をPostgresデータベースに格納するのは久しぶりです。頂点から頂点へのルーティングは、iGraphライブラリを使用して独自に開発しました。昨日、pgRoutingについて読み、現在のアプリケーションをpgRoutingに移植します。しかし、私は射撃開始経路ファインダーを使用する際にいくつかの問題に直面しています。 エッジと頂点の情報をテーブルに保存し、ターン制限付きのグラフルートを見つけるために、次のSQLスクリプトを呼び出します。 SELECT shortest_path_shooting_star( 'SELECT e.id, e.first as source, e.second as target, ST_Length(e.geom) as cost, st_x(st_pointn(e.geom, 1)) AS x1, st_y(st_pointn(e.geom, 1)) AS y1, st_x(st_pointn(e.geom, 2)) AS x2, st_y(st_pointn(e.geom, 2)) AS y2, (not connected)::boolean::int * 1000000 AS to_cost, c.first AS rule FROM edges e LEFT OUTER JOIN edge_connections c ON e.id …

3
補間されたOSMポイントを使用した最短経路
OSMネットワークにスナップした一連のGPSポイントがあります。下のスクリーンショットでは、GPSポイントは赤、スナップされたポイントは緑です。 これらすべての緑のウェイポイントを含む最短経路を計算したいと思います。私の解決策は、ポイントの各ペア間の最短経路を計算し、最終的に結果を連結することです。 私の問題は、dijkstra_spがOSMネットワーク上の任意のポイントを受け入れないことです。スナップされたポイントは、次のロジックを使用して計算されたため、必ずしもウェイテーブルにあるわけではありません。 特定のGPSポイントに最も近い方法を見つけます。 補間を使用して、この方法でGPSポイントに最も近いポイントを見つけます。 スナップされたポイントは補間によって導出されたため、ウェイテーブルにはありません。 だから私の質問は次のとおりです:ウェイテーブルに必ずしもないOSMネットワーク上の2点間の最短経路を計算するにはどうすればよいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.