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

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

10
オープンソースツールを使用して運転時間ポリゴンを作成しますか?
オープンソースのツールやデータを使用して、特定の場所から放射状に広がる運転時間ポリゴンを生成している人はいますか?たとえば、Network AnalystやBusiness AnalystなどのESRI製品を使用して、ユーザーが定義した期間(たとえば、5、10、および/または15分)。同様のオープンソースまたはWebベースの代替手段はありますか? この投稿を見ましたが、実際には代替オプションがありません: Google Maps APIで旅行地域ポリゴンを作成できますか? OpenStreetMapを使用して運転時間分析を行う(またはできる)かどうかを知りたいのですが、特に興味がありましたか? また、ポリゴンの生成に使用できるpgRoutingユーティリティの実装はありますか? http://pgrouting.postlbs.org/

4
注入速度を最適化するにはどうすればよいですか?
osm2pgroutingで作成されたpostgisデータベースでpgroutingを使用しています。限られたデータセットで非常に優れたパフォーマンスを発揮します(3.5kの方法、20ミリ秒未満のすべての最短パスA *検索)。 ただし、europe.osmからより大きなバウンディングボックス(122kウェイ)をインポートしたため、パフォーマンスが大幅に低下しました(最短パスのコストは約900ミリ秒)。 A *を使用すると、これらのエッジのほとんどは、邪魔にならないため、決してアクセスされないと思います。 速度を改善するためにこれまでに行ったこと: ジオメトリ列にインデックスを配置します(顕著な効果はありません) メモリーを8GBから16GBに増やしました postgresqlのメモリ設定(shared_buffers、effective_cache_size)を(128MB、128MB)から(1GB、2GB)に変更します(顕著な効果はありません) ほとんどの作業はグラフが作成されているC Boostライブラリで行われているので、postgresqlを最適化しても良い結果が得られないと感じています。検索ごとにA *に選択した行のセットに小さな変更を加えると、ブーストライブラリはグラフをキャッシュできず、毎回122kのエッジをすべて再構築する必要があるのではないかと心配しています(非常にクエリごとの限定サブセット)。そして、実際の最短パス検索と比較して、それを行うのにどれだけの費用がかかるかわかりません。 122k以上のOSMデータセットでpgroutingを使用している人はいますか?どのようなパフォーマンスが期待できますか?どの設定がパフォーマンスに最も影響しますか?

1
PostGIS関数はバッファと外部ストレージをどのように処理しますか?
PostGISの新しい関数のリストは増え続けており、その一部にはGEOS(たとえばST_ClusterKMeans)が含まれています。一部の関数(などpgrouting)は他のライブラリ(例BGL)に依存しています。 私の印象では、これらの基礎となるライブラリの多く(多くの場合C / C ++)は、メモリとセカンダリメモリ/ストレージ/ディスク間のバッファ管理を処理しません。 では、それらの上にあるPostGIS関数は、物理(または仮想)メモリに保存できない大きなデータセットで動作しますか? もしそうなら、これらのバッファ管理機能はどこから来ますか(実装の観点から)?

1
最適な歩道の建設に関するQGISとpgRoutingを使用したモンテカルロシミュレーション
私は空間分析に慣れていないので、以下に概説するように、私が試みているプロジェクトの一般的な方向性に感謝します(最初から始めています)。 目標:ほとんどの世帯を中央ビジネス地区(CBD)に接続するために、故郷に2000フィートの歩道を設置するのに最適な場所を見つけること。既存の構造(世帯)、道路、歩道(既に設置済み)を示すシェープファイルがあります。 ここに私の提案された解決策/思考プロセスがあります: インプレースの歩道ネットワークを、重み(距離)で接続されたノードのデータベースに変換します。すべての交差点をクリックして、QGIS(または他のプログラム)でこれを直接行う方法はありますか? pgRoutingなどのルーティング機能を使用して、中央ビジネス地区から1.2マイル以内にある世帯数(緯度経度のポイントまたはポリゴンなど)を計算します。これが基本ケースの「世帯アクセス」値になります。 道路レイヤーをガイドとして使用して、さらに2000フィート(たとえば10フィートのセグメント)の歩道をランダムに歩道レイヤーに配置します。これは、任意の数の新しい歩道を構築することと同等です。 (1)のように新しい歩行者ネットワークを使用してノードと重みを再計算し、次に(2)のようにCBDから1.2マイル以内にある世帯の数を再計算します。追加の歩道で増加するはずです。追加の歩道の場所と関連する「世帯アクセス」値をファイル(スプレッドシートなど)に保存します。 モンテカルロシミュレーションと同様に、ステップ(3)と(4)を10000回繰り返します。データポイントの10000セットを使用して、CBDから1.2マイル以内の世帯数を最大化する歩道配置場所を選択します。 この思考プロセスは現実的に聞こえますか?誰か提案はありますか? -QGISとRのいくつかの組み合わせを使用してこれを達成したいのですが、目標を達成するためにPostGISやPython(または他の何か)を学ぶことは自由です。

2
適切なルーティングエンジンの選択を支援する
ルートプランニングシステムを構築していますが、使用する基本的なルーティングエンジンを決定する必要があります。これまでのところ、私はpgroutingとneo4jを見つけました。 ルートネットワークはpostgresql / postgisデータベース(シェープファイルからインポート)にあります。ノードを抽出するためのクエリ(行き先または行き止まりの方向を決定する必要がある方法のエンドポイント)とエッジを抽出するためのクエリを作成しました(多くの場合、いくつかの連続した方法で構成されています)。私のエッジはすべて双方向です。 私の主な目標は、距離=コストのA-starアルゴリズムを使用して、このネットワーク上のルートを計算することです。 私の感じでは、neo4jのようなグラフデータベースを使用する方法があります(この目的のためだけに作成されているように思われます)が、デフォルトではA-starをサポートしていないようで、実際のジオメトリもありません。地図よりもソーシャルネットワークに適しているようです。 プラウティングは私のニーズを満たしますか? オンザフライクエリ(+ -2000ノード、+-4000エッジ)に十分な速度ですか?通常、これはA-starの場合は数ミリ秒ですが、SQLでのこの実装についてはわかりません。 P-grouting A-starはノードとエッジのリストを提供しますか? ほとんどの例でpgroutingについて見ると、通常はルートの計算後にコマンドのリストがあることに気づきます(「Xで左折など」)。pgroutingはこれを生成しますか、またはこれは別のシステムからのものですか? 誰かが私に選択するシステムに関する情報を提供してくれることを願っています。Neo4j、pgrouting、またはその他のシステム。

2
ルーティングのためにそのような悪いシェープファイルをきれいにする方法は?
pgrouting、postgis、postgresqlでのルーティングに使用できるようにシェープファイルをクリーンアップしようとしています。 ここで交差点は接続されているように見えますが、ズームすると…。そうではない: こっちも一緒 : ここで(最大にズームされています)1つのように思える2つの方法があり、1つだけが接続されています: 私は、さまざまな許容範囲のassign_vertex_idとQGISとPostGISを使用していますが、何を使用するのかわかりません。

2
OSMトランスポートネットワークに基づいてRでルート分析を実行していますか?
国勢調査のフローデータ、ジョブ密度分布、およびトランスポートネットワークに基づいて、通勤者が通勤中にたどる可能性のある経路を分析しています。 現時点では、分析にpgRoutingおよびQ​​GISのpgRoutingアドオン(ここで説明)を使用しています。 しかし、私は完全な複製であることを取るすべてのステップが欲しい(これに関する優れた記事を参照して、ここでは)、私は、コマンドラインからの私の分析を行い、将来の参考のためにスクリプトファイルを保存することを好むだろう。 R-geoパッケージは、無料で、軽量で、安定しているため、この要件を十分に満たします。小さなスクリプトファイルをダウンロードすると、私が行ったことをすべてやり直すことができるはずです(Rpubsでのこの無関係な例については、こちらを参照してください))。 これを行うために特定したRパッケージは次のとおりです。 2012年12月に公開されたgdistanceは有望に見えますが、osmトランスポートネットワークとの互換性の兆候はありません e1071はかなり抽象的で、おそらくやりたいことに対してやり過ぎだ spatstatパッケージのpairdist.lpp関数は有望に見えますが、ドキュメントはほとんどありません これらに飛び込む前に、同様のジレンマに直面したかもしれない人々に尋ねる価値があると考えました。 Rでルーティング解析を行うことは可能ですか、それともPostGISを適切に学習してpgRoutingですべて行うのが最善でしょうか?

4
ルートにオフセットを追加する方法は?
編集済み: 質問を説明したい。「ポイントA」にいて、「ポイントB」に行きたいとします。このポイントは「at_2po_4pgr」テーブルにはないため、ソース/ターゲットノードではありません。次に、ポイントAおよびB(緑色のポイント)の最も近いノードを検索します。この後、グリーンポイントIDを使用してshortest_pathコールを実行し、「オレンジ」パスを取得します。しかし、最初のケースで実際のパスコスト(距離)を取得するには、「offsetA」を減算し、2番目のケースでde「offset B」を追加する必要があります。赤点と緑点の間の距離を計算するには、次のクエリを実行します。 SELECT * FROM st_distance( ST_GeomFromText('POINT(-3.6963314 42.3498066)',4326), ST_GeomFromText('POINT(-3.6954276 42.3479634)',4326))。 オフセットを追加または減算するタイミングを知るにはどうすればよいですか? 私の英語でごめんなさい!

2
水路を経由する方法
通常の方法での(pg)ルーティングに関する多くの情報があります。通常の方法は人為的であり、ルーティングに理想的です。 しかし、私は水路経由のルーティングに興味があります。理論的には、これは通常の方法でルーティングするのと同じである必要がありますが、水路は多くの場合人造ではないため、湖のような大きな水域で構成されます。湖は、ルーティングに使用できるきちんとしたラインではありませんが、それ以外に、水深、橋や水門を考慮しなければならない場合もあります。そしてもちろん、これはもちろんボートのサイズ/深さに依存します。 上記で説明した問題のいくつかに取り組むツールはありますか?

3
PgRouting-最大コストに達したときにリンクをクリップする方法
道路ネットワークを表すポリラインシェープファイルと、ポイントを含む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番目は探している答えではありません。ノードまで到達しても構いません。

2
1つのクエリでPgRoutingを使用して複数の最短パスを取得しますか?
複数のソースとターゲットのペアで最短経路アルゴリズムを一度に実行し、結果をテーブルとして取得して処理したいです。 どうすればいいですか?このクエリは機能しません: SELECT a.source, a.target, paths.* FROM all_to_all a, shortest_path_astar('...', a.source, a.target, false, false) paths; ERROR: function expression in FROM cannot refer to other relations of same query level (ところで、all_to_allは文字通りすべてを意味するわけではありません、:)それは単なるランダムなペアの数です) これも機能しません: SELECT * FROM all_to_all a, ( SELECT * FROM shortest_path_astar('...', a.source, a.target, false, false) yyy ) AS t2;

3
複数の車両のルート最適化
100の目的地と5台の車両があり、車両を各目的地に効率的にルーティングするソリューションをコーディングする必要があるため、各目的地には1台の車両が訪問します。これらの目的地の一部には、時間ウィンドウもあります。 私はPostgreSQLとPostGISを使用しており、pgroutingの使用を検討していましたが、複数の車両に適しているかどうかはわかりません。 pgroutingがこの問題を解決できるかどうかについての考え、もしそうなら、コード例はありますか?そうでない場合、それを行うことができるオープンソースの代替手段はありますか?

2
A *とダイクストラにターン制限を追加する方法はありますか?
現在、pgRoutingを使用しており、ターン制限(右折または左折の禁止など)を実装する方法がないことがわかりました。Shooting *アルゴリズムで「to_cost」と「rule」を割り当てることは可能ですが... A starとDijktraアルゴリズムを使用してこれらの制限を実装する方法が見つかりませんでした。 Aスター法とダイクストラ法に特別なターン制限を実装する方法はありますか?

1
QGISとpgRoutingを使用したウォーキングとサイクリングのIsochroneマップの計算?
指定されたポイントからウォーキングとサイクリングのアイソクロンを生成できるはずだと思うので、QGISをインストールしました。ArcMapを使用する前にこれをかなり簡単に実行しましたが、QGISに本当に苦労しています。 私が読んだことから、PGRoutingとOSM2PGroutingマッピング(インストール済み)を使用しているはずです。私は以前にSQLを実際に使用したことがなく、これらの等時性を実行するためのダミーガイドを探しています。私はさまざまな方法について読んだことがあり、私が苦労しているSQLを最も詳細に説明しています。

4
ライン(LINESTRING)にないポイント(バス停)をネットワークに接続していますか?
バスストップ(ポイント)をネットワークレイヤー(OSMデータ)に接続する必要があります。これらのバス停は路線上にありません(スクリーンショットを参照)。また、場所を移動する必要もありません。私はPostGIS、pgrouting、QGISを使用しており、ネットワークはすでにソース列やターゲット列などでルーティング可能です。 その後、主に2つのことを行います。 最短経路分析を使用してバス停間の距離を取得する。 OSMネットワークを使用して、バス停から徒歩圏内にアイソクロンを作成します。 正確な値を取得するには、ルーティングがバス停に最も近い「スタート」と「ストップ」であることが必要です。多くの場合、最も近い既存のノードは遠すぎて正確な値を取得できません。ただし、バス停の実際のポイント位置へのルーティングはありません。写真の私の例では、ストップ間のルーティングがどのように見えるかを確認できます。 バス停に最も近い新しいノードをネットワーク(LINESTRING)に自動的に挿入する可能性はありますか、またはクエリのためだけに設定された一種の「ダミーポイント」でルーティングを開始することは可能ですか(道路と同様) QGISのグラフプラグインはありますか?)

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