PostGIS 3.5 Topology Cheatsheet

New in this release 1Enhanced in this release 2   Requires GEOS (3.9,3.10,3.11,3.12) or higher g3.9  
Tipos en Topology
getfaceedges_returntype    Un tipo compuesto que necesita un número de secuencia y un número de eje.
TopoGeometry    Un tipo compuesto que representa una geometría topológicamente definida.
validatetopology_returntype    Un tipo compuesto que consta de un mensaje de error e id1 e id2 para denotar la ubicación del error. Este es el tipo de valor devuelto por ValidateTopology.

Dominios de Topology
TopoElement    Una matriz de 2 enteros usada generalmente para identificar un componente TopoGeometry
TopoElementArray    Matriz de objetos TopoElement.

Topología y Gestión de TopoGeometría
AddTopoGeometryColumn    Agrega una columna topogeometry a una tabla existente, registra esta nueva columna como una capa en topology.layer y devuelve el nuevo 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)    Renames a topogeometry column
DropTopology (topology_schema_name)    Usar con precaución: Permite eliminar un esquema de topología y elimina su referencia de la talbla topology.topology y referencias a las tablas en ese esquema desde la tabla geometry_columns
RenameTopology (old_name, new_name)    Renames a topology
DropTopoGeometryColumn (schema_name, table_name, column_name)    Elimina la columna topogeometry de la tabla nombrada en table_name en el esquema schema_name y anula el registro de las columnas de la tabla topology.layer.
Populate_Topology_Layer ()    Agrega entradas faltantes a la tabla topology.layer mediante la lectura de metadatos de las tablas de topo.
TopologySummary (topology_schema_name)    Toma un nombre de topología y proporciona totales de resumen de tipos de objetos en la topología.
ValidateTopology (toponame, bbox)    Devuelve un conjunto de objetos validatetopology_returntype que detallan problemas con la topología.
ValidateTopologyRelation (toponame)    Returns info about invalid topology relation records
FindTopology    Returns a topology record by different means.
  1. topogeom
  2. layerTable, layerColumn
  3. layerSchema, layerTable, layerColumn
  4. topoName
  5. id
FindLayer    Returns a topology.layer record by different means.
  1. tg
  2. layer_table, feature_column
  3. schema_name, table_name, feature_column
  4. topology_id, layer_id

Topology Statistics Management

Constructores de Topología
CreateTopology    Creates a new topology schema and registers it in the topology.topology table.
  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)    Makes a copy of a topology (nodes, edges, faces, layers and TopoGeometries) into a new schema
ST_InitTopoGeo  mm (topology_schema_name)    Creates a new topology schema and registers it in the topology.topology table.
ST_CreateTopoGeo  mm (atopology, acollection)    Agrega una colección de geometrías a una topología vacía dada y devuelve un mensaje que detalla el éxito.
TopoGeo_AddPoint (atopology, apoint, tolerance)    Agrega un punto a una topología existente utilizando una tolerancia y posiblemente dividiendo un borde existente.
TopoGeo_AddLineString (atopology, aline, tolerance)    Agrega una cadena de línea a una topología existente utilizando una tolerancia y posiblemente dividiendo las aristas/caras existentes. Devuelve identificadores de borde.
TopoGeo_AddPolygon (atopology, apoly, tolerance)    Agrega un polígono a una topología existente utilizando una tolerancia y posiblemente dividiendo las aristas/caras existentes. Devuelve identificadores de cara.
TopoGeo_LoadGeometry  1 (atopology, ageom, tolerance)    Load a geometry into an existing topology, snapping and splitting as needed.

Editores de Topología
ST_AddIsoNode  mm (atopology, aface, apoint)    Agrega un nodo aislado a una cara de una topología y devuelve el identificardor de nodo del nuevo nodo. Si la cara es nula, el nodo es creado de todas maneras.
ST_AddIsoEdge  mm (atopology, anode, anothernode, alinestring)    Agrega un borde aislado definido por la geometría alinestring a una topología que conecta dos nodos aislados existentes anode y anothernode y devuelve el identificador de borde del nuevo borde.
ST_AddEdgeNewFaces  mm (atopology, anode, anothernode, acurve)    Agrega un nuevo borde y, si al hacerlo divide una cara, se elimina la cara original y es reemplazada con dos nuevas caras.
ST_AddEdgeModFace  mm (atopology, anode, anothernode, acurve)    Añada un nuevo borde y, si al hacerlo, divide una cara, modifica la cara original y añade una nueva cara.
ST_RemEdgeNewFace  mm (atopology, anedge)    Elimina un borde y, si el borde eliminado separa dos caras, borra las caras originales y las reemplaza con una nueva cara.
ST_RemEdgeModFace  mm (atopology, anedge)    Removes an edge, and if the edge separates two faces deletes one face and modifies the other face to cover the space of both.
ST_ChangeEdgeGeom  mm (atopology, anedge, acurve)    Cambia la forma de un borde sin afectar la estructura de la topología.
ST_ModEdgeSplit  mm (atopology, anedge, apoint)    Dividir un borde creando un nuevo nodo a lo largo de un borde existente, modificando el borde original y agregando un nuevo borde.
ST_ModEdgeHeal  mm (atopology, anedge, anotheredge)    Cura dos aristas eliminando el nodo que las conecta, modificando la primera arista y eliminando la segunda arista. Devuelve el identificador del nodo eliminado.
ST_NewEdgeHeal  mm (atopology, anedge, anotheredge)    Cura dos aristas eliminando el nodo que las conecta, eliminando ambas aristas y sustituyéndolas por una arista cuya dirección sea la misma que la primera arista proporcionada.
ST_MoveIsoNode  mm (atopology, anode, apoint)    Mueve un nodo aislado en una topología de un punto a otro. Si la nueva geometría apoint existe como nodo se lanza un error. Devuelve la descripción del movimiento.
ST_NewEdgesSplit  mm (atopology, anedge, apoint)    Divide un borde creando un nuevo nodo a lo largo de un borde existente, eliminando el borde original y reemplazandolo con dos bordes nuevos. Devuelve el identificador del nuevo nodo creado que une los nuevos bordes.
ST_RemoveIsoNode  mm (atopology, anode)    Elimina un nodo aislado y devuelve la descripción de la acción. Si el nodo no está aislado (es el inicio o el final de un borde), entonces se lanza una excepción.
ST_RemoveIsoEdge  mm (atopology, anedge)    Elimina un borde aislado y devuelve la descripción de la acción. Si el borde no está aislado, se lanza una excepción.

Accesores de Topología
GetEdgeByPoint (atopology, apoint, tol1)    Busca el identificador de arista de una arista que cruza un punto determinado.
GetFaceByPoint (atopology, apoint, tol1)    Finds face intersecting a given point.
GetFaceContainingPoint (atopology, apoint)    Finds the face containing a point.
GetNodeByPoint (atopology, apoint, tol1)    Busca el identificador de nodo de un nodo en un punto de ubicación.
GetTopologyID (toponame)    Devuelve el identificador de una topología en la tabla topology.topology dado el nombre de la topología.
GetTopologySRID (toponame)    Devuelve el SRID de una topología en la tabla topology.topology dado el nombre de la topología.
GetTopologyName (topology_id)    Devuelve el nombre de una topología (esquema) dado el identificador de la topología.
ST_GetFaceEdges  mm (atopology, aface)    Devuelve un conjunto de bordes ordenados que ligan aface.
ST_GetFaceGeometry  mm (atopology, aface)    Devuelve el polígono en la topología dada con el identificador de la cara especificada.
GetRingEdges (atopology, aring, max_edges=null)    Devuelve el conjunto ordenado de identificadores de borde con signo asignado al caminar en un lado de borde dado.
GetNodeEdges (atopology, anode)    Devuelve un conjunto ordenado de aristas incidente al nodo dado.

Procesamiento de Topología
Polygonize (toponame)    Busca y registra todas las caras definidas por aristas de topología.
AddNode (toponame, apoint, allowEdgeSplitting=false, computeContainingFace=false)    Agrega un nodo de punto a la tabla de nodos del esquema de topología especificado y devuelve el identificador de nodo del nuevo nodo. Si el punto ya existe como nodo, se devuelve el identificador de nodo existente.
AddEdge (toponame, aline)    Agrega una arista de LineString a la tabla de arista y los puntos de inicio y fin asociados a la tabla nodos de puntos del esquema de topología usando la geometría LineString especificada y devuelve el identificador de arista de la arista nueva (o existente).
AddFace (toponame, apolygon, force_new=false)    Registra una primitiva de cara a una topología y obtiene su identificador.
ST_Simplify (tg, tolerance)    Devuelve una versión "simplificada" de la geometría de la TopoGeometry dada usando el algoritmo de Douglas-Peucker.
RemoveUnusedPrimitives (topology_name, bbox)    Removes topology primitives which not needed to define existing TopoGeometry objects.

Constructores de Geometría Topográfica
CreateTopoGeom    Crea un nuevo objeto de geometría topo de la matriz de elementos topo - tg_type: 1:[multi]point, 2:[multi]line, 3:[multi]poly, 4:collection
  1. toponame, tg_type, layer_id, tg_objs
  2. toponame, tg_type, layer_id
toTopoGeom    Convierte un Geometry simple en una geometría topo.
  1. geom, toponame, layer_id, tolerance
  2. geom, topogeom, tolerance
TopoElementArray_Agg (tefield)    Devuelve un topoelementarray para un conjunto de element_id, matriz de tipo (topoelements).
TopoElement (topo)    Converts a topogeometry to a topoelement.

Editores TopoGeometry
clearTopoGeom (topogeom)    Borra el contenido de una topo geometry.
TopoGeom_addElement (tg, el)    Agrega un elemento a la definición de una TopoGeometry.
TopoGeom_remElement (tg, el)    Quita un elemento de la definición de una TopoGeometry.
TopoGeom_addTopoGeom (tgt, src)    Adds element of a TopoGeometry to the definition of another TopoGeometry.
toTopoGeom    Agrega una forma de geometría a una geometría topográfica existente.

Descriptores de Geometría Topográfica
GetTopoGeomElementArray    Devuelve un topoelementarray (una matriz de topoelements) que contiene los elementos topológicos y el tipo de la TopoGeometry (elementos primitivos) especificados.
  1. toponame, layer_id, tg_id
  2. tg
GetTopoGeomElements    Devuelve un conjunto de objetos topoelement que contienen el element_id topológico, element_type de la TopoGeometry (elementos primitivos) especificados.
  1. toponame, layer_id, tg_id
  2. tg
ST_SRID  mm (tg)    Returns the spatial reference identifier for a topogeometry.

Salidas de Geometría Topográfica
AsGML    Devuelve una representación GML de una geometría topográfica.
  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)    Devuelve la representación TopoJSON de una topogeometry.

Relaciones espaciales de topología
Equals  3d (tg1, tg2)    Devuelve true si dos topogeometries están compuestas de las mismas primitivas topologicas.
Intersects  3d (tg1, tg2)    Devuelve verdadero si cualquier par de primitivas de las dos topogeometries se intersectan.

Importing and exporting Topologies