PostGIS 3.5 拓扑速查表

此版本新增 1 此版本增强 2  需要 GEOS (3.9, 3.10, 3.11, 3.12) 或更高版本 g3.9  
拓扑类型
getfaceedges_returntype    一个复合类型,由一个序列号和一个边号组成。
TopoGeometry    一个复合类型,表示拓扑定义的几何体。
validatetopology_returntype    一个复合类型,由错误消息以及表示错误位置的 id1 和 id2 组成。 这是 ValidateTopology 的返回类型。

拓扑域
TopoElement    一个由 2 个整数组成的数组,通常用于标识 TopoGeometry 组件。
TopoElementArray    一个 TopoElement 对象数组。

拓扑和 TopoGeometry 管理
AddTopoGeometryColumn    向现有表添加 topogeometry 列,将此新列注册为 topology.layer 中的一个图层,并返回新的 layer_id。
  1. topology_name, schema_name, table_name, column_name, feature_type
  2. topology_name, schema_name, table_name, column_name, feature_type, child_layer
RenameTopoGeometryColumn (layer_table, feature_column, new_name)    重命名 topogeometry 列
DropTopology (topology_schema_name)    请谨慎使用:删除拓扑模式,并从 topology.topology 表中删除其引用,并从 geometry_columns 表中删除对该模式中表的引用。
RenameTopology (old_name, new_name)    重命名拓扑
DropTopoGeometryColumn (schema_name, table_name, column_name)    从模式 schema_name 中名为 table_name 的表中删除 topogeometry 列,并从 topology.layer 表中取消注册该列。
Populate_Topology_Layer ()    通过读取 topo 表中的元数据,向 topology.layer 表中添加缺失的条目。
TopologySummary (topology_schema_name)    获取拓扑名称并提供拓扑中对象类型的汇总总数。
ValidateTopology (toponame, bbox)    返回一组 validatetopology_returntype 对象,详细说明拓扑的问题。
ValidateTopologyRelation (toponame)    返回有关无效拓扑关系记录的信息
FindTopology    通过不同方式返回拓扑记录。
  1. topogeom
  2. layerTable, layerColumn
  3. layerSchema, layerTable, layerColumn
  4. topoName
  5. id
FindLayer    通过不同方式返回 topology.layer 记录。
  1. tg
  2. layer_table, feature_column
  3. schema_name, table_name, feature_column
  4. topology_id, layer_id

拓扑统计管理

拓扑构造器
CreateTopology    创建新的拓扑模式,并在 topology.topology 表中注册。
  1. topology_schema_name
  2. topology_schema_name, srid
  3. topology_schema_name, srid, prec
  4. topology_schema_name, srid, prec, hasz
CopyTopology (existing_topology_name, new_name)    将拓扑(节点、边、面、图层和 TopoGeometries)的副本复制到新模式中
ST_InitTopoGeo  mm (topology_schema_name)    创建新的拓扑模式,并在 topology.topology 表中注册。
ST_CreateTopoGeo  mm (atopology, acollection)    将几何体集合添加到给定的空拓扑中,并返回详细说明成功的消息。
TopoGeo_AddPoint (atopology, apoint, tolerance)    使用容差将点添加到现有拓扑,并可能拆分现有边。
TopoGeo_AddLineString (atopology, aline, tolerance)    使用容差将线串添加到现有拓扑,并可能拆分现有边/面。
TopoGeo_AddPolygon (atopology, apoly, tolerance)    使用容差将多边形添加到现有拓扑,并可能拆分现有边/面。 返回面标识符。
TopoGeo_LoadGeometry  1 (atopology, ageom, tolerance)    将几何体加载到现有拓扑中,根据需要进行捕捉和拆分。

拓扑编辑器
ST_AddIsoNode  mm (atopology, aface, apoint)    向拓扑中的面添加孤立节点,并返回新节点的 nodeid。 如果面为 null,则仍然会创建节点。
ST_AddIsoEdge  mm (atopology, anode, anothernode, alinestring)    将由几何体 alinestring 定义的孤立边添加到连接两个现有孤立节点 anode 和 anothernode 的拓扑,并返回新边的边 id。
ST_AddEdgeNewFaces  mm (atopology, anode, anothernode, acurve)    添加新边,如果这样做会拆分面,则删除原始面并将其替换为两个新面。
ST_AddEdgeModFace  mm (atopology, anode, anothernode, acurve)    添加新边,如果这样做会拆分面,则修改原始面并添加新面。
ST_RemEdgeNewFace  mm (atopology, anedge)    删除边,如果删除的边分隔了两个面,则删除原始面并将其替换为新面。
ST_RemEdgeModFace  mm (atopology, anedge)    删除边,如果该边分隔两个面,则删除一个面并修改另一个面以覆盖两个面的空间。
ST_ChangeEdgeGeom  mm (atopology, anedge, acurve)    更改边的形状,而不影响拓扑结构。
ST_ModEdgeSplit  mm (atopology, anedge, apoint)    通过沿现有边创建新节点来拆分边,修改原始边并添加新边。
ST_ModEdgeHeal  mm (atopology, anedge, anotheredge)    通过删除连接它们的节点,修改第一条边并删除第二条边来修复两条边。 返回已删除节点的 ID。
ST_NewEdgeHeal  mm (atopology, anedge, anotheredge)    通过删除连接它们的节点,删除两条边,并用一条方向与提供的第一条边相同的边来替换它们来修复两条边。
ST_MoveIsoNode  mm (atopology, anode, apoint)    将拓扑中的孤立节点从一个点移动到另一个点。 如果新的 apoint 几何体作为节点存在,则会引发错误。 返回移动的描述。
ST_NewEdgesSplit  mm (atopology, anedge, apoint)    通过沿现有边创建新节点来拆分边,删除原始边并将其替换为两条新边。 返回创建的新节点的 ID,该 ID 连接新边。
ST_RemoveIsoNode  mm (atopology, anode)    删除孤立节点并返回操作的描述。 如果节点不是孤立的(是边的起点或终点),则会引发异常。
ST_RemoveIsoEdge  mm (atopology, anedge)    删除孤立边并返回操作的描述。 如果该边不是孤立的,则会引发异常。

拓扑访问器
GetEdgeByPoint (atopology, apoint, tol1)    查找与给定点相交的边的边 ID。
GetFaceByPoint (atopology, apoint, tol1)    查找与给定点相交的面。
GetFaceContainingPoint (atopology, apoint)    查找包含点的面。
GetNodeByPoint (atopology, apoint, tol1)    查找点位置处节点的节点 ID。
GetTopologyID (toponame)    给定拓扑的名称,返回 topology.topology 表中拓扑的 ID。
GetTopologySRID (toponame)    给定拓扑的名称,返回 topology.topology 表中拓扑的 SRID。
GetTopologyName (topology_id)    给定拓扑的 ID,返回拓扑(模式)的名称。
ST_GetFaceEdges  mm (atopology, aface)    返回绑定 aface 的一组有序边。
ST_GetFaceGeometry  mm (atopology, aface)    返回给定拓扑中具有指定面 ID 的多边形。
GetRingEdges (拓扑, 环, 最大边数=null)    返回在给定环的边上行走时遇到的已排序的带符号的边标识符集合。
GetNodeEdges (拓扑, 节点)    返回与给定节点关联的已排序的边集合。

拓扑处理
Polygonize (拓扑名称)    查找并注册由拓扑边定义的所有面。
AddNode (拓扑名称, 点, 允许边分割=false, 计算包含面=false)    在指定拓扑模式的节点表中添加一个点节点,并返回新节点的 nodeid。如果该点已作为节点存在,则返回现有的 nodeid。
AddEdge (拓扑名称, 线)    使用指定的线串几何图形,将线串边添加到边表,并将关联的起点和终点添加到指定拓扑模式的点节点表,并返回新的(或已存在的)边的 edgeid。
AddFace (拓扑名称, 多边形, 强制新建=false)    向拓扑注册一个面图元,并获取其标识符。
ST_Simplify (拓扑几何, 容差)    使用 Douglas-Peucker 算法返回给定拓扑几何的“简化”几何版本。
RemoveUnusedPrimitives (拓扑名称, 边界框)    删除定义现有拓扑几何对象不需要的拓扑图元。

拓扑几何构造器
CreateTopoGeom    从拓扑元素数组创建一个新的拓扑几何对象 - tg_type:1:[多]点,2:[多]线,3:[多]多边形,4:集合
  1. 拓扑名称, tg_type, 图层id, tg_objs
  2. 拓扑名称, tg_type, 图层id
toTopoGeom    将简单几何转换为拓扑几何。
  1. 几何, 拓扑名称, 图层id, 容差
  2. 几何, 拓扑几何, 容差
TopoElementArray_Agg (tefield)    返回一组元素 ID、类型数组(拓扑元素)的拓扑元素数组。
TopoElement (拓扑)    将拓扑几何转换为拓扑元素。

拓扑几何编辑器
clearTopoGeom (拓扑几何)    清除拓扑几何的内容。
TopoGeom_addElement (拓扑几何, 元素)    向拓扑几何的定义添加一个元素。
TopoGeom_remElement (拓扑几何, 元素)    从拓扑几何的定义中删除一个元素。
TopoGeom_addTopoGeom (目标拓扑几何, 源拓扑几何)    将一个拓扑几何的元素添加到另一个拓扑几何的定义中。
toTopoGeom    将几何图形添加到现有的拓扑几何。

拓扑几何访问器
GetTopoGeomElementArray    返回一个包含给定拓扑几何(基本元素)的拓扑元素和类型的拓扑元素数组(拓扑元素数组)。
  1. 拓扑名称, 图层id, 拓扑几何id
  2. 拓扑几何
GetTopoGeomElements    返回一组包含给定拓扑几何(基本元素)的拓扑元素id、元素类型的拓扑元素对象。
  1. 拓扑名称, 图层id, 拓扑几何id
  2. 拓扑几何
ST_SRID  mm (拓扑几何)    返回拓扑几何的空间参考标识符。

拓扑几何输出
AsGML    返回拓扑几何的 GML 表示形式。
  1. 拓扑几何
  2. 拓扑几何, 命名空间前缀_in
  3. 拓扑几何, 已访问表
  4. 拓扑几何, 已访问表, 命名空间前缀
  5. 拓扑几何, 命名空间前缀_in, 精度, 选项
  6. 拓扑几何, 命名空间前缀_in, 精度, 选项, 已访问表
  7. 拓扑几何, 命名空间前缀_in, 精度, 选项, 已访问表, id前缀
  8. 拓扑几何, 命名空间前缀_in, 精度, 选项, 已访问表, id前缀, gml版本
AsTopoJSON (拓扑几何, 边映射表)    返回拓扑几何的 TopoJSON 表示形式。

拓扑空间关系
Equals  3d (拓扑几何1, 拓扑几何2)    如果两个拓扑几何由相同的拓扑图元组成,则返回 true。
Intersects  3d (拓扑几何1, 拓扑几何2)    如果两个拓扑几何中的任意一对图元相交,则返回 true。

导入和导出拓扑