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 ()    透過從拓樸表格讀取中繼資料,將遺失的項目新增到 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)    將拓樸 (節點、邊緣、面、圖層和 TopoGeometry) 複製到新的綱要中
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。如果面為空值,則仍然會建立節點。
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。
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 (atopology, aring, max_edges=null)    傳回在給定邊側上行走時,依序遇到的帶符號邊緣 ID 集合。
GetNodeEdges (atopology, anode)    傳回與給定節點關聯的依序邊緣集合。

拓撲處理
Polygonize (toponame)    尋找並註冊由拓撲邊緣定義的所有面。
AddNode (toponame, apoint, allowEdgeSplitting=false, computeContainingFace=false)    將點節點新增至指定拓撲綱要中的節點表,並傳回新節點的 nodeid。如果該點已存在為節點,則傳回現有的 nodeid。
AddEdge (toponame, aline)    將線字串邊緣新增至邊緣表,並使用指定的線字串幾何圖形,將關聯的起點和終點新增至指定拓撲綱要的點節點表,並傳回新的(或現有的)邊緣的 edgeid。
AddFace (toponame, apolygon, force_new=false)    將面基本圖形註冊到拓撲,並取得其識別碼。
ST_Simplify (tg, tolerance)    使用 Douglas-Peucker 演算法,傳回給定 TopoGeometry 的「簡化」幾何圖形版本。
RemoveUnusedPrimitives (topology_name, bbox)    移除定義現有 TopoGeometry 物件不需要的拓撲基本圖形。

TopoGeometry 建構子
CreateTopoGeom    從拓撲元素陣列建立新的拓撲幾何物件 - tg_type: 1:[多]點, 2:[多]線, 3:[多]多邊形, 4:集合
  1. toponame, tg_type, layer_id, tg_objs
  2. toponame, tg_type, layer_id
toTopoGeom    將簡單的幾何圖形轉換為拓撲幾何圖形。
  1. geom, toponame, layer_id, tolerance
  2. geom, topogeom, tolerance
TopoElementArray_Agg (tefield)    傳回一組 element_id、類型陣列(拓撲元素)的拓撲元素陣列。
TopoElement (topo)    將拓撲幾何轉換為拓撲元素。

TopoGeometry 編輯器
clearTopoGeom (topogeom)    清除拓撲幾何圖形的內容。
TopoGeom_addElement (tg, el)    將元素新增至 TopoGeometry 的定義。
TopoGeom_remElement (tg, el)    從 TopoGeometry 的定義中移除元素。
TopoGeom_addTopoGeom (tgt, src)    將 TopoGeometry 的元素新增至另一個 TopoGeometry 的定義。
toTopoGeom    將幾何圖形形狀新增至現有的拓撲幾何圖形。

TopoGeometry 存取子
GetTopoGeomElementArray    傳回包含給定 TopoGeometry 的拓撲元素和類型(基本元素)的拓撲元素陣列(拓撲元素陣列)。
  1. toponame, layer_id, tg_id
  2. tg
GetTopoGeomElements    傳回一組包含給定 TopoGeometry 的拓撲 element_id、element_type 的拓撲元素物件(基本元素)。
  1. toponame, layer_id, tg_id
  2. tg
ST_SRID  mm (tg)    傳回拓撲幾何圖形的空間參考識別碼。

TopoGeometry 輸出
AsGML    傳回拓撲幾何圖形的 GML 表示法。
  1. tg
  2. tg, nsprefix_in
  3. tg, visitedTable
  4. tg, visitedTable, nsprefix
  5. tg, nsprefix_in, precision, options
  6. tg, nsprefix_in, precision, options, visitedTable
  7. tg, nsprefix_in, precision, options, visitedTable, idprefix
  8. tg, nsprefix_in, precision, options, visitedTable, idprefix, gmlversion
AsTopoJSON (tg, edgeMapTable)    傳回拓撲幾何圖形的 TopoJSON 表示法。

拓撲空間關係
Equals  3d (tg1, tg2)    如果兩個拓撲幾何圖形由相同的拓撲基本圖形組成,則傳回 true。
Intersects  3d (tg1, tg2)    如果兩個拓撲幾何圖形的任何一對基本圖形相交,則傳回 true。

匯入和匯出拓撲