名前

CG_ForceLHR — LHR (Left Hand Rule) 方向に強制します。

概要

geometry CG_ForceLHR(geometry geom);

説明

ポリゴン系要素が左手規則に従う等価のジオメトリーを返します。この場合、外側リングは反時計回りで、内側リングは時計回りです。リングは必要に応じて逆順にします。座標と次元は維持されます。入力は妥当なものでなければなりません。

Availability: 3.5.0

このメソッドには SFCGAL バックエンドが必要です。

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

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

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

ポリゴンを左手規則に揃えなおす。

コード
WITH data AS (
  SELECT 'POLYGON((0 0,0 4,4 4,4 0,0 0),
                  (1 1,3 1,3 3,1 3,1 1))'::geometry AS geom
)
SELECT geom AS input_polygon,
       CG_ForceLHR(geom) AS lhr_polygon,
       ST_IsPolygonCCW(geom) AS input_is_lhr,
       ST_IsPolygonCCW(CG_ForceLHR(geom)) AS output_is_lhr
FROM data;
出力
POLYGON((0 0,0 4,4 4,4 0,0 0),(1 1,3 1,3 3,1 3,1 1)) | POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1,1 3,3 3,3 1,1 1)) | f | t
Geometry figure for visual-cg-forcelhr-01