名前

ST_MinimumClearance — ジオメトリのクリアランスの最小値を返します。この値はジオメトリのロバスト性を示すものです。

概要

float ST_MinimumClearance(geometry g);

説明

ST_IsValid (ポリゴン)またはST_IsSimple (ライン)に従って、ジオメトリは妥当性基準を満たせますが、そのうちの一つの頂点が短い距離だけ移動すると不正になります。これは、テキスト書式 (WKT, KML, GML, GeoJSON等)に変換する際の精度の損失や、倍精度浮動小数点座標値を使わない書式 (MapInfo TAB等)で発生する可能性があります。

クリアランスの最小値は、座標精度を変更するためのジオメトリのロバスト性を定量的に計測したものです。ジオメトリの頂点が不正なジオメトリとなることなしに移動できる最大距離です。

ジオメトリがクリアランスの最小値eを持つ場合:

  • 距離eより近くなるジオメトリ内の二つの個別の頂点はありません。

  • 終端となる辺を除いて、辺との距離がeより近い頂点は存在しません。

ジオメトリのクリアランスの最小値が存在しない (単一POINT、要素が同じMULTIPOINT等)場合には、返り値はInfinityになります。

精度の損失による有効性の問題を回避するには、 ST_ReducePrecisionを使うと、ポリゴンジオメトリの妥当性を確実に維持しつつ座標値の精度を減らせられます。

Availability: 2.3.0

SELECT ST_MinimumClearance('POLYGON ((0 0, 1 0, 1 1, 0.5 3.2e-4, 0 0))');
 st_minimumclearance
---------------------
             0.00032
     

関連情報

ST_MinimumClearanceLine, ST_IsSimple, ST_IsValid, ST_ReducePrecision