名前

CG_YMonotonePartition — ポリゴンジオメトリーの Y 単調分割を計算します

概要

geometry CG_YMonotonePartition(geometry geom);

説明

ポリゴンジオメトリーの Y 単調分割を計算します。

[注記]

ポリゴン P の分割は、内部同士がインタセクトせず、結合すると元のポリゴン P の内部と同じになるようなポリゴンの集合です。Y 単調のポリゴンとは、頂点 v1,…vn が、v1,…,vk と vk,…,vn,v1の二つのチェーンに、水平線がどちらかのチェーンに、たかだか1回インタセクトするようになるように分割することができるポリゴンです。このアルゴリズムは、最適なポリゴン数に対して生成されるポリゴン数の限度を保証しません。

Availability: 3.5.0 - SFCGAL >= 1.5.0が必要です。

SFCGAL >= 1.5.0 が必要

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

同じポリゴンを下流処理のために Y 単調の部分に分割することもできます。

コード
WITH data AS (
  SELECT 'POLYGON((156 150,83 181,89 131,148 120,107 61,32 159,0 45,41 86,45 1,177 2,67 24,109 31,170 60,180 110,156 150))'::geometry AS input_polygon
)
SELECT input_polygon AS input_polygon,
       CG_YMonotonePartition(input_polygon) AS partition
FROM data;
出力
POLYGON((156 150,83 181,89 131,148 120,107 61,32 159,0 45,41 86,45 1,177 2,67 24,109 31,170 60,180 110,156 150)) | GEOMETRYCOLLECTION(POLYGON((32 159,0 45,41 86,32 159)), POLYGON((107 61,32 159,41 86,45 1,177 2,67 24,109 31,170 60,107 61)), POLYGON((156 150,83 181,89 131,148 120,107 61,170 60,180 110,156 150)))
Geometry figure for visual-cg-ymonotonepartition-01