PostGIS にライン シェープファイルをロードしpgr_createTopology、pgRouting で使用して、ソースとターゲットを追加してテーブルをルーティング可能にしました (ライン ソース番号とターゲット番号の 2 つのエンド ノードを割り当てます)。次の図は表の一部です。
テーブル内の行に属するエンド ノードの座標がいくつかあります。これらの座標に対応するソース/ターゲットの数を知りたいと思います。
たとえば、上の表で、259463.392, 2737830.062が と のエンド ノードの 1 つであると仮定するline id=1とline id=2、この座標はsource/target=175
私はSQLの初心者で、いくつかのクエリを試しましたが、エラーが発生しました:
SELECT ST_AsText(geom) from source;
FROM public.tc_line15_split;
エラー:
ERROR: syntax error at or near "FROM"
LINE 2: FROM public.tc_line15_split;
^
********** Error **********
ERROR: syntax error at or near "FROM"
SQL state: 42601
Character: 45
更新#1
列のソース/ターゲットにノード座標の情報が含まれている場合、私は何が欲しいかを知ることができると考えていますが、そうではないようです。それらは数字を含む列です。
以下のように頂点テーブルを取得しました。
次のクエリを使用して、以下のテーブルを取得しました。
select source, target, st_astext(geom) as geom from public.tc_line15_split;
上記の2つの表から必要なものが得られるかどうかをまだ探しています。
そこで、以下のクエリを試して、指定された座標の近くに 2 つの行を取得しました。
select id from tc_line15_split
where st_dwithin(geom, st_setsrid(st_makepoint(259463.392, 2737830.062), 3826), 0.1);
その後、最初の図に示された表から、座標がそれぞれ id 170/51 の source/target=54 であることがわかりましたが、それでもまだ非効率的です。
指定された座標がこれらの2つの線の間にあることがわかった後、この場合line id=51と両方に含まれる同じソース/ターゲット番号を見つける方法があるのでしょうか?line id=170
更新#2
頂点テーブルに基づいて、次のクエリを使用して、指定された座標の対応するソース番号 (ポイント ID でもある) を取得しました。
select id from tc_line15_split_vertices_pgr
where st_dwithin(the_geom, st_setsrid(st_makepoint(259463.392, 2737830.062), 3826), 0.1);





