名前

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

概要

integer AddEdge(varchar toponame, geometry aline);

説明

指定したラインストリングジオメトリを使ってtoponameで指定したトポロジスキーマにおいて、ラインストリングエッジをエッジテーブルに追加し、関連する始点終点のノードをノードテーブルに追加し、新規または既存のレコードのエッジの識別番号を返します。 新しく追加されたエッジは、両側に「ユニバース」フェイスを持ち、自身に関連付けを行います(訳注: トポロジスキーマのedge_dataテーブルを見てみて下さい)。

[注記]

alineジオメトリが既存のラインストリングエッジとクロス、オーバラップ、包含、被包含している場合、エラーが投げられ、エッジは追加されません。

[注記]

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

初出: 2.0.0 GEOS 3.3.0以上が必要

SELECT topology.AddEdge('ma_topo', ST_GeomFromText('LINESTRING(227575.8 893917.2,227591.9 893900.4)', 26986) ) As edgeid;
-- 結果 --
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;
-- 結果 --
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

関連情報

CreateTopology, 「SPATIAL_REF_SYSテーブルと空間参照系」