問題タブ [pgrouting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
937 参照

postgresql - GeoServer でのルーティングに OSM を使用する (ベスト プラクティス)

私は OSM の初心者ですが、GIS (Geoserver) を使用し、地点 A から地点 B への道路を取得するサービスを提供するアプリケーションを作成する必要があります。

これについていくつかの情報を見つけましたが、まだ質問があります。私は、オープン ストリート マップをダウンロードしてデータベース (PostgreSQL) に抽出し、ルーティングにはプラグイン pgRouting を使用します。次に、db をマップ サーバーに接続し、クライアントに API を提供します。

質問: 1. それは正しい方法ですか? 2. postgre にどのように osm フォーマットを使用できますか? (osm.pbf? shp.zip? など?)

回答ありがとうございます

0 投票する
1 に答える
941 参照

postgresql - OSMをすべての都市と通りの名前でデータベースにエクスポートする方法は?

私の郡の osm マップをダウンロードし、空間 pg データベースを作成します。このコマンドで osm2pgrouting 経由でエクスポートした Osm ファイル:

テーブルをエクスポートした後、私はこのスキーマを持っていました:

私が間違っていることを教えてもらえますか?都市や通りなどのすべてのノードを含む osm ファイルを DB にインポートするにはどうすればよいですか? 回答ありがとうございます。

0 投票する
2 に答える
743 参照

sql - SQL:PostGISテーブルのラインシェープファイルで指定された座標のソース/ターゲットを取得する方法は?

PostGIS にライン シェープファイルをロードしpgr_createTopology、pgRouting で使用して、ソースとターゲットを追加してテーブルをルーティング可能にしました (ライン ソース番号とターゲット番号の 2 つのエンド ノードを割り当てます)。次の図は表の一部です。

ここに画像の説明を入力

テーブル内の行に属するエンド ノードの座標がいくつかあります。これらの座標に対応するソース/ターゲットの数を知りたいと思います。

たとえば、上の表で、259463.392, 2737830.062が と のエンド ノードの 1 つであると仮定するline id=1line id=2、この座標はsource/target=175

私はSQLの初心者で、いくつかのクエリを試しましたが、エラーが発生しました:

エラー:


更新#1

列のソース/ターゲットにノード座標の情報が含まれている場合、私は何が欲しいかを知ることができると考えていますが、そうではないようです。それらは数字を含む列です。

以下のように頂点テーブルを取得しました。

ここに画像の説明を入力

次のクエリを使用して、以下のテーブルを取得しました。

ここに画像の説明を入力

上記の2つの表から必要なものが得られるかどうかをまだ探しています。

そこで、以下のクエリを試して、指定された座標の近くに 2 つの行を取得しました。

ここに画像の説明を入力

その後、最初の図に示された表から、座標がそれぞれ id 170/51 の source/target=54 であることがわかりましたが、それでもまだ非効率的です。

指定された座標がこれらの2つの線の間にあることがわかった後、この場合line id=51と両方に含まれる同じソース/ターゲット番号を見つける方法があるのでしょうか?line id=170


更新#2

頂点テーブルに基づいて、次のクエリを使用して、指定された座標の対応するソース番号 (ポイント ID でもある) を取得しました。

ここに画像の説明を入力

0 投票する
1 に答える
1097 参照

sql - 列「pedroad.id」は、GROUP BY 句に表示されるか、集計関数で使用する必要があります

どのように使用すればよいgroup byですか?

0 投票する
2 に答える
672 参照

postgresql - pgr_drivingDistance で最速パスの距離を取得する

拡張機能 pgrouting を使用して、PostgreSQL でOSM2POを使用して OSM ベースのルーティング ネットワークを作成しました。列km(km 単位の距離)、列cost(運転時間)、およびmax_speed. 関数pgr_drivingDistanceで列km(km 単位の距離)を使用して集水域を作成しようとしました。これは最短経路で集水域を計算しますが、これはほとんどの場合、車にとって現実的な距離ではありません。したがって、 を使用して最短の運転時間に基づいて流域を計算したいと思いcostます。しかし、結果として、time ではなくメートルの単位が必要です。ヒントをありがとう。

短いバージョン: 最速 (最小時間) ルートの距離が km の集水域が必要です!

以下は、最短距離を km で指定した pgr_drivingDistance の標準コードです。