toTopoGeom — 単純なジオメトリからTopoGeometryを生成します。
topogeometry toTopoGeom(
geometry geom, varchar toponame, integer layer_id, float8 tolerance)
;
layer_idで示されたレイヤのためのTopoGeometryオブジェクトを生成し、toponame
内の関連テーブルに登録します。
入力ジオメトリを表現しなければならないトポロジのプリミティブが追加されます。既存のものを分割することもあります。既存のTopoGeometryオブジェクトは形状を保持します。
tolerance
が与えられた場合は、入力ジオメトリは既存のプリミティブにスナップするために使われます。
初出: 2.0
This is a full self-contained workflow
-- セットアップしたトポロジが無い場合に実行します -- 許容差を認めないトポロジの生成 SELECT topology.CreateTopology('topo_boston_test', 2249); -- 新規テーブル作成 CREATE TABLE nei_topo(gid serial primary key, nei varchar(30)); -- TopoGeometryカラムの追加 SELECT topology.AddTopoGeometryColumn('topo_boston_test', 'public', 'nei_topo', 'topo', 'MULTIPOLYGON') As new_layer_id; new_layer_id ----------- 1 -- 新しいTopoGeometryカラムの追加で新しいレイヤ識別番号を使用 -- 新しいレイヤに許容差0でTopoGeometryを追加 INSERT INTO nei_topo(nei, topo) SELECT nei, topology.toTopoGeom(geom, 'topo_boston_test', 1) FROM neighborhoods WHERE gid BETWEEN 1 and 15; -- 何が起こったかの確認に使用 SELECT * FROM topology.TopologySummary('topo_boston_test'); -- 概要 -- Topology topo_boston_test (5), SRID 2249, precision 0 61 nodes, 87 edges, 35 faces, 15 topogeoms in 1 layers Layer 1, type Polygonal (3), 15 topogeoms Deploy: public.nei_topo.topo