すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ST_FrechetDistance

最終更新日:Jun 21, 2024

このトピックでは、ST_FrechetDistance関数について説明します。 この関数は、2つのジオメトリオブジェクト間のFrechet距離を計算します。

構文

float ST_FrechetDistance (ジオメトリg1、ジオメトリg2、float densifyFrac);

パラメーター

パラメーター説明
g1指定する最初のジオメトリオブジェクト。
g2指定する2番目のジオメトリオブジェクト。
densifyFracこの関数が各セグメントを高密度化する割合。 各セグメントは、いくつかの等しい長さのサブセグメントに分割され、その全長の分数は、指定された分数に最も近い。

説明

  • フレシェ距離は、曲線間の類似性の尺度である。 この関数がFrechet距離を計算すると、この関数は曲線に沿った点の位置と順序を考慮します。 したがって、フレシェ距離はハウスドルフ距離よりも正確です。
  • densifyFracパラメーターを指定すると、この関数はFrechet距離を計算する前にセグメントの高密度化を実行します。 各セグメントは、いくつかの等しい長さのサブセグメントに分割され、その全長の分数は、指定された分数に最も近い。
  • この関数は、離散位置として頂点のみをサポートし、ポイントの数を制限しません。
  • densifyFracパラメータの値が小さいほど、より正確なFrechet距離を示す。 しかしながら、計算時間およびメモリ使用量は、サブセグメントの数の2乗に比例する。

デフォルトのパラメーター設定を使用して、2つのジオメトリオブジェクト間のFrechet距離を計算します。
SELECT ST_FrechetDistance('LINESTRING (1 0,2 0)': geometry, 'LINESTRING (-1 0,0 0)'::geometry);
 st_frechetdistance
--------------------
                  2
(1行)