名前

ST_ForceSFS — ジオメトリーを SFS 1.1 または 1.2 のジオメトリータイプに強制します。

概要

geometry ST_ForceSFS(geometry geomA);

geometry ST_ForceSFS(geometry geomA, text version);

説明

ジオメトリーを OGC Simple Features Specification の指定したバージョンで定義されているジオメトリータイプを使うよう強制します。デフォールトは SFS 1.1. 曲線ジオメトリーは直線表現に変換され、TRIANGLEPOLYGON に変換され、TINPOLYHEDRALSURFACEGEOMETRYCOLLECTION とし、要素として POLYGON を入れます。

version1.2 で始まる場合には、曲線ジオメトリーはなお直線表現に変換されますが、TRIANGLETINPOLYHEDRALSURFACE は維持されます。他のバージョン値ではデフォルトの SFS 1.1 を使います。ジオメトリーコレクションは再帰的に処理され、SRID と Z値、M値 は維持されます。

Availability: 2.1.0

この関数は多面体サーフェスに対応しています。

この関数は三角形と不規則三角網 (TIN)に対応しています。

このメソッドは曲線ストリングと曲線に対応しています。

この関数は3次元に対応し、Z値を削除しません。

SFS 1.1 (デフォルト) と SFS 1.2 で生成したジオメトリータイプ。それぞれの行を入力タイプから結果カラムに向いて読みます。

Code
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;
出力:
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)