Namn

ST_ForceSFS — Tvinga geometrier att använda geometrityper enligt SFS 1.1 eller 1.2.

Synopsis

geometry ST_ForceSFS(geometry geomA);

geometry ST_ForceSFS(geometry geomA, text version);

Beskrivning

Tvingar en geometri att använda de geometrityper som definieras av den begärda versionen av OGC Simple Features Specification. Standardvärdet är SFS 1.1. Krökta geometrier omvandlas till linjära representationer, TRIANGLE omvandlas till POLYGON och TIN och POLYHEDRALSURFACE omvandlas till GEOMETRYCOLLECTION-värden som innehåller POLYGON-element.

Om version börjar med 1.2 omvandlas krökta geometrier fortfarande till linjära representationer, men TRIANGLE, TIN och POLYHEDRALSURFACE bevaras. Andra versionsvärden använder standardbeteendet för SFS 1.1. Geometrisamlingar bearbetas rekursivt och SRID samt Z/M-koordinater bevaras.

Tillgänglighet: 2.1.0

Denna funktion stöder polyedriska ytor.

Denna funktion stöder trianglar och triangulerade oregelbundna nätverksytor (TIN).

Denna metod stöder cirkulära strängar och kurvor.

Denna funktion stöder 3d och kommer inte att tappa z-index.

Exempel

Jämför geometrityperna som skapas för SFS 1.1 (standard) och SFS 1.2. Läs varje rad från indatatypen i riktning mot resultatkolumnerna.

Kod
WITH inputs(geom) AS (VALUES
    ('CIRCULARSTRING(0 0, 1 1, 2 0)'::geometry),
    ('TRIANGLE((0 0, 0 2, 2 0, 0 0))'::geometry),
    ('TIN(((0 0, 0 2, 2 0, 0 0)))'::geometry),
    ('POLYHEDRALSURFACE(((0 0, 0 2, 2 0, 0 0)))'::geometry)
)
SELECT ST_GeometryType(geom) || ' →' AS input,
       ST_GeometryType(ST_ForceSFS(geom)) AS "SFS 1.1 (default)",
       ST_GeometryType(ST_ForceSFS(geom, '1.2')) AS "SFS 1.2"
FROM inputs;
Utdata
input          |   SFS 1.1 (default)   |       SFS 1.2
------------------------+-----------------------+----------------------
 ST_CircularString →    | ST_LineString         | ST_LineString
 ST_Triangle →          | ST_Polygon            | ST_Triangle
 ST_Tin →               | ST_GeometryCollection | ST_Tin
 ST_PolyhedralSurface → | ST_GeometryCollection | ST_PolyhedralSurface
(4 rows)