Name

AddEdge — 指定したラインストリングジオメトリを使って、ラインストリングエッジをエッジテーブルに追加し、指定したトポロジスキーマの始点終点をポイントノードテーブルに追加し、新しい (または既存の)エッジの識別番号を返します。

Synopsis

bigint AddEdge(varchar toponame, geometry aline);

説明

指定したラインストリングジオメトリを使って、指定したtoponameスキーマのノードテーブルにノードを追加し、新しいまたは既存のレコードのエッジ識別番号を返します。ラインストリングエッジをエッジテーブルに追加し、指定したトポロジスキーマの始点終点をポイントノードテーブルに追加し、新規または既存のエッジの識別番号を返します。新しく追加されたエッジは両側にユニバースフェイスを持ち、自分自身にリンクしています。

[Note]

alineジオメトリが既存のエッジとクロスしたり、既存のエッジをオーバラップしたり、既存のエッジを包含したり、既存のエッジに包含されたりする場合には、エラーが投げられ、エッジは追加されません。

[Note]

alineのジオメトリはsridがトポロジで指定されたものと同じである必要があり、異なる場合には、不正な空間参照系エラーが投げられます。

GEOSモジュールで実現しています。

[Warning]

AddEdge は3.5.0では非推奨です。TopoGeo_AddLineStringを代わりに使います。

Availability: 2.0.0

SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 893917.2, 227591.9 893900.4)', 26986)) AS edgeid;
1
SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.9 893900.4, 227622.6 893844.2, 227641.6 893816.5, 227704.5 893778.5)', 26986)) AS edgeid;
2

このクエリーはエッジが既存のエッジと終端以外の場所でインタセクトするためエラーになります。

SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227591.2 893900, 227591.9 893900.4, 227704.5 893778.5)', 26986)) AS edgeid;
ERROR:  Edge intersects (not on endpoints) with existing edge 1