AddTopoGeometryColumn — 向现有表添加拓扑几何列,将此新列注册为拓扑中的图层,并返回新的图层 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),则此图层将包含基本 TopoGeometries(由基本拓扑元素组成)。否则,此图层将包含层次结构 TopoGeometries(由 child_layer 中的 TopoGeometries 组成)。
图层创建后(其 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');