AddTopoGeometryColumn — 既存のテーブルにTopoGeometryカラムを追加し、topology.layer内に新しいレイヤとして新しいカラムを登録して、新しい layer_id を返します。
text AddTopoGeometryColumn(
varchar
topology_name, varchar
schema_name, varchar
table_name, varchar
column_name, varchar
feature_type)
;
text AddTopoGeometryColumn(
varchar
topology_name, varchar
schema_name, varchar
table_name, varchar
column_name, varchar
feature_type, integer
child_layer)
;
TopoGeometryオブジェクトは、それぞれ特定のトポロジの特定のレイヤに属します。TopoGeometryオブジェクト生成の前に、トポロジレイヤの生成が必要です。トポロジレイヤは地物テーブルとトポロジとで組織されます。また、タイプと階層の情報を持ちます。レイヤの生成にはAddTopoGeometryColumn()を使います。
この関数は、リクエストされたカラムをテーブルに追加し、topology.layerテーブルに、与えられた全ての情報のレコードを追加します。
[child_layer]を指定しない(またはNULLを指定する)場合、このレイヤは、基本的なTopoGeometry(プリミティブなトポロジ要素で構成)を含みます。指定する場合、このレイヤは階層的なTopoGeometry(child_layerからのTopoGeometryで構成)を持ちます。
レイヤが生成される(これの識別番号は、AddTopoGeometryColumn関数が返します)と、TopoGeometryオブジェクトをこの中に構築する準備ができます。
妥当なfeature_type
は、POINT, LINE, POLYGON, COLLECTIONです。
初出: 1.?
-- 本例ではma_topoスキーマに新しいテーブルを作ったことに注意して下さい。 -- 異なるスキーマに新しいテーブルを作ることができ、 -- この場合はtopology_nameとshcema_nameが異なります。 CREATE SCHEMA ma; CREATE TABLE ma.parcels(gid serial, parcel_id varchar(20) PRIMARY KEY, address text); SELECT topology.AddTopoGeometryColumn('ma_topo', 'ma', 'parcels', 'topo', 'POLYGON');
CREATE SCHEMA ri; CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text); SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', 'LINE');