PostGIS 3.6 Topology Cheatsheet

Nytt i denna utgåva 1Förbättrad i denna utgåva 2   Kräver GEOS (3.9,3.10,3.11,3.12) eller högre g3.9  
Topologityper
getfaceedges_returntype    En sammansatt typ som består av ett sekvensnummer och ett kantnummer.
TopoGeometry    En sammansatt typ som representerar en topologiskt definierad geometri.
validatetopology_returntype    En sammansatt typ som består av ett felmeddelande samt id1 och id2 för att ange var felet finns. Detta är returtypen för ValidateTopology.

Topologidomäner
TopoElement    En matris med 2 heltal som vanligtvis används för att identifiera en TopoGeometry-komponent.
TopoElementArray    En array av TopoElement-objekt.

Hantering av topologi och topogeometri
AddTopoGeometryColumn    Lägger till en topogeometrikolumn i en befintlig tabell, registrerar den nya kolumnen som ett lager i topology.layer och returnerar det nya 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)    Byter namn på en topogeometri-kolumn
DropTopology (topology_schema_name)    Använd med försiktighet: Tar bort ett topologischema och raderar dess referens från tabellen topology.topology och referenser till tabeller i det schemat från tabellen geometry_columns.
RenameTopology (old_name, new_name)    Byter namn på en topologi
DropTopoGeometryColumn (schema_name, table_name, column_name)    Tar bort kolumnen topogeometry från tabellen med namnet table_name i schema schema_name och avregistrerar kolumnerna från tabellen topology.layer.
Populate_Topology_Layer ()    Lägger till saknade poster i tabellen topology.layer genom att läsa metadata från topotabeller.
TopologySummary (topology_schema_name)    Tar ett topologinamn och ger sammanfattande totalsummor för olika typer av objekt i topologin.
ValidateTopology (toponame, bbox)    Returnerar en uppsättning validatetopology_returntype-objekt som beskriver problem med topologin.
ValidateTopologyRelation (toponame)    Returnerar information om ogiltiga topologirelationsposter
ValidateTopologyPrecision  1 (toponame, bbox, gridSize)    Returnerar icke-precisa toppunkter i topologin.
MakeTopologyPrecise  1 (toponame, bbox, gridSize)    Fäst topologivinklar till precisionsrutnätet.
FindTopology    Returnerar en topologipost på olika sätt.
  1. topogeom
  2. layerTable, layerColumn
  3. layerSchema, layerTable, layerColumn
  4. topoName
  5. id
FindLayer    Returnerar en topology.layer-post på olika sätt.
  1. tg
  2. layer_table, feature_column
  3. schema_name, table_name, feature_column
  4. topology_id, layer_id
TotalTopologySize  1 (toponame)    Totalt diskutrymme som används av den angivna topologin, inklusive alla index och TOAST-data.

Hantering av topologistatistik

Topology Constructors
CreateTopology    Skapar ett nytt topologischema och registrerar det i tabellen 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)    Gör en kopia av en topologi (noder, kanter, ytor, lager och TopoGeometries) till ett nytt schema
ST_InitTopoGeo  mm (topology_schema_name)    Skapar ett nytt topologischema och registrerar det i tabellen topology.topology.
ST_CreateTopoGeo  mm (atopology, acollection)    Lägger till en samling geometrier till en given tom topologi och returnerar ett meddelande om det lyckas.
TopoGeo_AddPoint (atopology, apoint, tolerance)    Lägger till en punkt i en befintlig topologi med hjälp av en tolerans och eventuellt genom att dela en befintlig kant.
TopoGeo_AddLineString (atopology, aline, tolerance)    Lägger till en linestrings till en befintlig topologi med hjälp av en tolerans och eventuellt delning av befintliga kanter/ytor.
TopoGeo_AddPolygon (atopology, apoly, tolerance)    Lägger till en polygon till en befintlig topologi med hjälp av en tolerans och eventuellt delning av befintliga kanter/ytor. Returnerar ytidentifierare.
TopoGeo_LoadGeometry (atopology, ageom, tolerance)    Läs in en geometri i en befintlig topologi, snappa och dela efter behov.

Topologiredigerare
ST_AddIsoNode  mm (atopology, aface, apoint)    Lägger till en isolerad nod till en face i en topologi och returnerar nodeid för den nya noden. Om face är null skapas noden ändå.
ST_AddIsoEdge  mm (atopology, anode, anothernode, alinestring)    Lägger till en isolerad kant definierad av geometrin alinestring till en topologi som förbinder två befintliga isolerade noder anode och anothernode och returnerar kant-ID för den nya kanten.
ST_AddEdgeNewFaces  mm (atopology, anode, anothernode, acurve)    Lägg till en ny kant och, om den delar en yta, ta bort den ursprungliga ytan och ersätt den med två nya ytor.
ST_AddEdgeModFace  mm (atopology, anode, anothernode, acurve)    Lägg till en ny kant och, om den delar en yta, modifiera den ursprungliga ytan och lägg till en ny yta.
ST_RemEdgeNewFace  mm (atopology, anedge)    Tar bort en kant och, om den borttagna kanten separerade två ytor, tar bort de ursprungliga ytorna och ersätter dem med en ny yta.
ST_RemEdgeModFace  mm (atopology, anedge)    Tar bort en kant, och om kanten separerar två ytor tas den ena ytan bort och den andra ytan modifieras så att den täcker utrymmet för båda ytorna.
ST_ChangeEdgeGeom  mm (atopology, anedge, acurve)    Ändrar formen på en kant utan att påverka topologins struktur.
ST_ModEdgeSplit  mm (atopology, anedge, apoint)    Dela en kant genom att skapa en ny nod längs en befintlig kant, modifiera den ursprungliga kanten och lägga till en ny kant.
ST_ModEdgeHeal  mm (atopology, anedge, anotheredge)    Läker två kanter genom att ta bort den nod som förbinder dem, modifiera den första kanten och ta bort den andra kanten. Returnerar id för den borttagna noden.
ST_NewEdgeHeal  mm (atopology, anedge, anotheredge)    Läker två kanter genom att ta bort noden som förbinder dem, ta bort båda kanterna och ersätta dem med en kant vars riktning är densamma som den första tillhandahållna kanten.
ST_MoveIsoNode  mm (atopology, anode, apoint)    Flyttar en isolerad nod i en topologi från en punkt till en annan. Om den nya apoint-geometrin existerar som en nod kastas ett fel. Returnerar beskrivning av förflyttning.
ST_NewEdgesSplit  mm (atopology, anedge, apoint)    Dela en kant genom att skapa en ny nod längs en befintlig kant, ta bort den ursprungliga kanten och ersätta den med två nya kanter. Returnerar id för den nya nod som skapats och som sammanfogar de nya kanterna.
ST_RemoveIsoNode  mm (atopology, anode)    Tar bort en isolerad nod och returnerar en beskrivning av åtgärden. Om noden inte är isolerad (är början eller slutet på en kant), kastas ett undantag.
ST_RemoveIsoEdge  mm (atopology, anedge)    Tar bort en isolerad kant och returnerar en beskrivning av åtgärden. Om kanten inte är isolerad kastas ett undantag.

Topologi-accessorer
GetEdgeByPoint (atopology, apoint, tol1)    Hittar kant-id för en kant som skär en given punkt.
GetFaceByPoint (atopology, apoint, tol1)    Hitta en yta som skär en given punkt.
GetFaceContainingPoint (atopology, apoint)    Hittar den yta som innehåller en punkt.
GetNodeByPoint (atopology, apoint, tol1)    Hittar nod-id för en nod vid en punktposition.
GetTopologyID (toponame)    Returnerar id för en topologi i tabellen topology.topology givet topologins namn.
GetTopologySRID (toponame)    Returnerar SRID för en topologi i tabellen topology.topology med topologins namn.
GetTopologyName (topology_id)    Returnerar namnet på en topologi (schema) givet topologins id.
ST_GetFaceEdges  mm (atopology, aface)    Returnerar en uppsättning ordnade kanter som avgränsar en yta..
ST_GetFaceGeometry  mm (atopology, aface)    Returnerar polygonen i den angivna topologin med det angivna ytans id.
GetRingEdges (atopology, aring, max_edges=null)    Returnerar den ordnade uppsättningen av signerade kantidentifierare som man möter när man går på en given kantsida.
GetNodeEdges (atopology, anode)    Returnerar en ordnad uppsättning kanter som är kopplade till den angivna noden.

Bearbetning av topologi
Polygonize (toponame)    Hittar och registrerar alla ytor som definieras av topologikanter.
AddNode (toponame, apoint, allowEdgeSplitting=false, computeContainingFace=false)    Lägger till en punktnod i nodtabellen i det angivna topologischemat och returnerar den nya nodens nodid. Om punkten redan finns som nod returneras det befintliga nodid.
AddEdge (toponame, aline)    Lägger till en linestringskant i tabellen edge och associerade start- och slutpunkter i tabellen point nodes i det angivna topologischemat med hjälp av den angivna linestringsgeometrin och returnerar edgeid för den nya (eller befintliga) kanten.
AddFace (toponame, apolygon, force_new=false)    Registrerar en ytprimitiv till en topologi och hämtar dess identifierare.
ST_Simplify (tg, tolerance)    Returnerar en "förenklad" geometriversion av den angivna TopoGeometry med hjälp av Douglas-Peucker-algoritmen.
RemoveUnusedPrimitives (topology_name, bbox)    Tar bort topologiprimitiver som inte behövs för att definiera befintliga TopoGeometry-objekt.

TopoGeometry Constructors
CreateTopoGeom    Skapar ett nytt topogeometriobjekt från en array av topoelement - tg_type: 1:[multi]punkt, 2:[multi]linje, 3:[multi]poly, 4:samling
  1. toponame, tg_type, layer_id, tg_objs
  2. toponame, tg_type, layer_id
toTopoGeom    Konverterar en enkel geometri till en topogeometri.
  1. geom, toponame, layer_id, tolerance
  2. geom, topogeom, tolerance
TopoElementArray_Agg (tefield)    Returnerar en topoelementarray för en uppsättning element_id, typ arrayer (topoelements).
TopoElement (topo)    Konverterar en topogeometri till ett topoelement.

TopoGeometry-redigerare
clearTopoGeom (topogeom)    Rensar innehållet i en topogeometri.
TopoGeom_addElement (tg, el)    Lägger till ett element till definitionen av en TopoGeometry.
TopoGeom_remElement (tg, el)    Tar bort ett element från definitionen av en TopoGeometry.
TopoGeom_addTopoGeom (tgt, src)    Lägger till element i en TopoGeometry till definitionen av en annan TopoGeometry.
toTopoGeom    Lägger till en geometrisk form till en befintlig topogeometri.

TopoGeometry-accessorer
GetTopoGeomElementArray    Returnerar en topoelementarray (en array av topoelements) som innehåller de topologiska elementen och typen för den givna TopoGeometry (primitiva element).
  1. toponame, layer_id, tg_id
  2. tg
GetTopoGeomElements    Returnerar en uppsättning topoelement-objekt som innehåller topologiska element_id,element_type för den givna TopoGeometry (primitiva element).
  1. toponame, layer_id, tg_id
  2. tg
ST_SRID  mm (tg)    Returnerar den spatiala referensidentifieraren för en topogeometri.

TopoGeometry-utdata
AsGML    Returnerar GML-representationen av en topogeometri.
  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)    Returnerar TopoJSON-representationen av en topogeometri.

Spatiala relationer mellan topologier
Equals  3d (tg1, tg2)    Returnerar true om två topogeometrier består av samma topologiprimitiver.
Intersects  3d (tg1, tg2)    Returnerar true om något par av primitiver från de två topogeometrierna korsar varandra.

Importera och exportera topologier