問題タブ [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.
postgresql - GeoServer でのルーティングに OSM を使用する (ベスト プラクティス)
私は OSM の初心者ですが、GIS (Geoserver) を使用し、地点 A から地点 B への道路を取得するサービスを提供するアプリケーションを作成する必要があります。
これについていくつかの情報を見つけましたが、まだ質問があります。私は、オープン ストリート マップをダウンロードしてデータベース (PostgreSQL) に抽出し、ルーティングにはプラグイン pgRouting を使用します。次に、db をマップ サーバーに接続し、クライアントに API を提供します。
質問: 1. それは正しい方法ですか? 2. postgre にどのように osm フォーマットを使用できますか? (osm.pbf? shp.zip? など?)
回答ありがとうございます
postgresql - OSMをすべての都市と通りの名前でデータベースにエクスポートする方法は?
私の郡の osm マップをダウンロードし、空間 pg データベースを作成します。このコマンドで osm2pgrouting 経由でエクスポートした Osm ファイル:
テーブルをエクスポートした後、私はこのスキーマを持っていました:
私が間違っていることを教えてもらえますか?都市や通りなどのすべてのノードを含む osm ファイルを DB にインポートするにはどうすればよいですか? 回答ありがとうございます。
sql - SQL:PostGISテーブルのラインシェープファイルで指定された座標のソース/ターゲットを取得する方法は?
PostGIS にライン シェープファイルをロードしpgr_createTopology
、pgRouting で使用して、ソースとターゲットを追加してテーブルをルーティング可能にしました (ライン ソース番号とターゲット番号の 2 つのエンド ノードを割り当てます)。次の図は表の一部です。
テーブル内の行に属するエンド ノードの座標がいくつかあります。これらの座標に対応するソース/ターゲットの数を知りたいと思います。
たとえば、上の表で、259463.392, 2737830.062
が と のエンド ノードの 1 つであると仮定するline id=1
とline id=2
、この座標はsource/target=175
私はSQLの初心者で、いくつかのクエリを試しましたが、エラーが発生しました:
エラー:
更新#1
列のソース/ターゲットにノード座標の情報が含まれている場合、私は何が欲しいかを知ることができると考えていますが、そうではないようです。それらは数字を含む列です。
以下のように頂点テーブルを取得しました。
次のクエリを使用して、以下のテーブルを取得しました。
上記の2つの表から必要なものが得られるかどうかをまだ探しています。
そこで、以下のクエリを試して、指定された座標の近くに 2 つの行を取得しました。
その後、最初の図に示された表から、座標がそれぞれ id 170/51 の source/target=54 であることがわかりましたが、それでもまだ非効率的です。
指定された座標がこれらの2つの線の間にあることがわかった後、この場合line id=51
と両方に含まれる同じソース/ターゲット番号を見つける方法があるのでしょうか?line id=170
更新#2
頂点テーブルに基づいて、次のクエリを使用して、指定された座標の対応するソース番号 (ポイント ID でもある) を取得しました。
sql - 列「pedroad.id」は、GROUP BY 句に表示されるか、集計関数で使用する必要があります
どのように使用すればよいgroup by
ですか?
postgresql - pgr_drivingDistance で最速パスの距離を取得する
拡張機能 pgrouting を使用して、PostgreSQL でOSM2POを使用して OSM ベースのルーティング ネットワークを作成しました。列km
(km 単位の距離)、列cost
(運転時間)、およびmax_speed
. 関数pgr_drivingDistanceで列km
(km 単位の距離)を使用して集水域を作成しようとしました。これは最短経路で集水域を計算しますが、これはほとんどの場合、車にとって現実的な距離ではありません。したがって、 を使用して最短の運転時間に基づいて流域を計算したいと思いcost
ます。しかし、結果として、time ではなくメートルの単位が必要です。ヒントをありがとう。
短いバージョン: 最速 (最小時間) ルートの距離が km の集水域が必要です!
以下は、最短距離を km で指定した pgr_drivingDistance の標準コードです。