AddTopoGeometryColumn — 在現有表格中新增拓樸幾何欄位,將此新欄位註冊為 topology.layer 中的圖層,並傳回新的 layer_id。
integer AddTopoGeometryColumn(
varchar topology_name, varchar schema_name, varchar table_name, varchar column_name, varchar feature_type)
;
integer AddTopoGeometryColumn(
varchar topology_name, varchar schema_name, varchar table_name, varchar column_name, varchar feature_type, integer child_layer)
;
每個 TopoGeometry 物件都屬於特定拓樸的特定圖層。在建立 TopoGeometry 物件之前,您需要建立其拓樸圖層 (TopologyLayer)。拓樸圖層是特徵表格與拓樸的關聯。它也包含類型和階層資訊。我們使用 AddTopoGeometryColumn() 函數來建立圖層。
此函數將在表格中新增請求的欄位,並在 topology.layer 表格中新增包含所有給定資訊的記錄。
如果您未指定 [child_layer] (或將其設定為 NULL),則此圖層將包含基本拓樸幾何 (由基本拓樸元素組成)。否則,此圖層將包含階層式拓樸幾何 (由子圖層的拓樸幾何組成)。
一旦建立圖層 (其 ID 由 AddTopoGeometryColumn 函數傳回),您就可以在其中建構拓樸幾何物件。
有效的 feature_type
為:POINT、MULTIPOINT、LINE、MULTILINE、POLYGON、MULTIPOLYGON、COLLECTION
可用性:1.1
-- Note for this example we created our new table in the ma_topo schema -- though we could have created it in a different schema -- in which case topology_name and schema_name would be different 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');