名称

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 对象之前,您需要创建其拓扑图层。拓扑图层是将要素表与拓扑相关联。它还包含类型和层次结构信息。我们使用 AddTopoGeometryColumn() 函数创建一个图层。

此函数将在表中添加请求的列,并在 topology.layer 表中添加包含所有给定信息的记录。

如果您不指定 [child_layer] (或将其设置为 NULL),则该图层将包含基本拓扑几何 (由原始拓扑元素组成)。否则,该图层将包含分层拓扑几何 (由来自 child_layer 的拓扑几何组成)。

创建图层后 (其 ID 由 AddTopoGeometryColumn 函数返回),您就可以在其中构造 TopoGeometry 对象了。

有效的 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');