名前

AddTopoGeometryColumn — 既存のテーブルに TopoGeometry カラムを追加し、topology.layer 内に新しいレイヤとして新しいカラムを登録して、新しい layer_id を返します。

概要

integer AddTopoGeometryColumn(name topology_name, name schema_name, name table_name, name column_name, varchar feature_type, integer child_layer);

integer AddTopoGeometryColumn(name topology_name, regclass tab, name column_name, integer layer_id, varchar feature_type, integer child_layer);

説明

それぞれの TopoGeometry オブジェクトは、特定のトポロジの特定のレイヤに属します。TopoGeometry オブジェクト生成の前に、トポロジレイヤの生成が必要です。トポロジレイヤは地物テーブルとトポロジとで組織されます。また、タイプと階層の情報を持ちます。レイヤの生成には AddTopoGeometryColumn() を使います。

この関数は、リクエストされたカラムをテーブルに追加し、topology.layer テーブルに、与えられた全ての情報のレコードを追加します。

[child_layer]を指定しない (または NULL を指定する) 場合、このレイヤは、基本的なTopoGeometry (プリミティブなトポロジ要素で構成) を含みます。指定する場合、このレイヤは階層的な TopoGeometry (child_layer からの TopoGeometry で構成) を持ちます。

レイヤが生成される (これの識別番号は、AddTopoGeometryColumn 関数が返します) と、TopoGeometry オブジェクトをこの中に構築する準備ができます。

妥当なfeature_type: POINT, MULTIPOINT, LINE, MULTILINE, POLYGON, MULTIPOLYGON, COLLECTION

Availability: 1.1

この例では、ma_topoの新しいテーブルを生成しています。異なるスキーマでテーブルを作ることができ、この場合、topology_nameschema_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');