你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

Topology拓扑_4:拓扑构造函数

2021/12/11 0:20:36

4. 拓扑构造函数

4.1. CreateTopology

CreateTopology — 创建一个新的拓扑模式,并在拓扑中注册这个新模式。 拓扑表中。

4.1.1. 概要

integer CreateTopology(varchar topology_schema_name);
integer CreateTopology(varchar topology_schema_name, integer srid);
integer CreateTopology(varchar topology_schema_name, integer srid, double precision prec);
integer CreateTopology(varchar topology_schema_name, integer srid, double precision prec, boolean hasz);

4.1.2. 描述

创建一个名为topology_name的新模式,由表(edge_data、face、node、relation)组成,并在拓扑中注册这个新拓扑。 拓扑表中。 它返回拓扑表中拓扑的id。 srid是在该拓扑的spatial_ref_sys表中定义的空间引用。 拓扑必须唯一命名。 公差以空间参考系统为单位进行测量。 如果没有指定公差(prec),默认值为0。

这类似于SQL/MM ST_InitTopoGeo,但功能更强大。 Hasz默认为false,如果没有指定。

4.1.3. 样例

这个例子创建了一个名为ma_topo的新模式,它将在Massachusetts State Plane仪表中存储边、面和关系。 由于空间参考系统是以米为基础的空间参考系统,公差代表1/2米

SELECT topology.CreateTopology('ma_topo',26986, 0.5);

在状态平面创建罗德岛拓扑

SELECT topology.CreateTopology('ri_topo',3438) As topoid;
topoid
2

4.2 CopyTopology

CopyTopology — 复制拓扑结构(节点、边、面、层和拓扑几何)。

4.2.1. 概要

integer CopyTopology(varchar existing_topology_name, varchar new_name);

4.2.2. 描述

创建一个新的拓扑,名称为new_topology_name和SRID,精度取自existing_topology_name,复制所有的节点、边和面,也复制层及其TopoGeometries。

拓扑中的新行。 层将包含schema_name、table_name和feature_column的合成值。 这是因为TopoGeometry将仅作为定义存在,但还不能在任何用户级表中使用。

4.2.3. 样例

  • 这个示例对名为ma_topo的拓扑进行了备份
SELECT topology.CopyTopology('ma_topo', 'ma_topo_bakup');

4.3 ST_InitTopoGeo

ST_InitTopoGeo -创建一个新的拓扑模式,并在拓扑中注册这个新模式。 流程的拓扑表和详细摘要。

4.3.1. 概要

text ST_InitTopoGeo(varchar topology_schema_name);

4.3.2. 描述

这是一个SQL-MM等效的CreateTopology,但缺少CreateTopology的空间引用和容忍选项,并输出创建的文本描述而不是拓扑id。

4.3.3. 样例

SELECT topology.ST_InitTopoGeo('topo_schema_to_create') AS topocreation;
astopocreation
Topology-Geometry ‘topo_schema_to_create’ (id:7) created.

4.4. ST_CreateTopoGeo

ST_CreateTopoGeo -向给定的空拓扑添加一个几何图形集合,并返回一个消息,详细说明成功。

4.4.1. 概要

text ST_CreateTopoGeo(varchar atopology, geometry acollection);

4.4.2. 描述

将几何图形集合添加到给定的空拓扑中,并返回详细说明成功的消息。
对于填充空拓扑非常有用

4.4.3. 样例

  • 填充拓扑

SELECT topology.ST_CreateTopoGeo('ri_topo',
ST_GeomFromText('MULTILINESTRING((384744 236928,384750 236923,384769 236911,384799 236895,384811 236890,384833 236884,
            384844 236882,384866 236881,384879 236883,384954 236898,385087 236932,385117 236938,
            385167 236938,385203 236941,385224 236946,385233 236950,385241 236956,385254 236971,
            385260 236979,385268 236999,385273 237018,385273 237037,385271 237047,385267 237057,
            385225 237125,385210 237144,385192 237161,385167 237192,385162 237202,385159 237214,
            385159 237227,385162 237241,385166 237256,385196 237324,385209 237345,385234 237375,
            385237 237383,385238 237399,385236 237407,385227 237419,385213 237430,385193 237439,
            385174 237451,385170 237455,385169 237460,385171 237475,385181 237503,385190 237521,
            385200 237533,385206 237538,385213 237541,385221 237542,385235 237540,385242 237541,
            385249 237544,385260 237555,385270 237570,385289 237584,385292 237589,385291 237596,385284 237630))',3438)
);
st_createtopogeo
Topology ri_topo populated
  • 创建表和拓扑几何图形
CREATE TABLE ri.roads(gid serial PRIMARY KEY, road_name text);

SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', 'LINE');

4.5. TopoGeo_AddPoint

TopoGeo_AddPoint — 使用容差(可能拆分现有边)将一个点添加到现有拓扑中。

4.5.1. 概要

integer TopoGeo_AddPoint(varchar toponame, geometry apoint, float8 tolerance);

4.5.2. 描述

向现有拓扑添加一个点并返回其标识符。 给定的点将在给定的容忍范围内与现有的节点或边连接。 现有的边缘可能被断裂点分割。

4.6. TopoGeo_AddLineString

TopoGeo_AddLineString—使用公差并可能拆分现有边/面将行字符串添加到现有拓扑。 返回边标识符

4.6.1. 概要

SETOF integer TopoGeo_AddLineString(varchar toponame, geometry aline, float8 tolerance);

4.6.2. 描述

将linestring添加到现有拓扑中,并返回一组组成该拓扑的边标识符。 给定的线将在给定的容忍范围内与现有的节点或边合并。 现有的边和面可能被线分开。

4.7. TopoGeo_AddLineString

TopoGeo_AddPolygon — 使用公差并可能拆分现有边/面将多边形添加到现有拓扑中。

4.7.1. 概要

integer TopoGeo_AddPolygon(varchar atopology, geometry apoly, float8 atolerance);

4.7.2. 描述

将一个多边形添加到现有拓扑中,并返回组成该拓扑的一组面标识符。 给定多边形的边界将在给定公差范围内与现有的节点或边对齐。 现有的边和面可能被新多边形的边界分割。