返回給定的兩個Geometry對象的弗雷歇距離。

語法

float  ST_FrechetDistance(geometry  g1 , geometry  g2 , float  densifyFrac);

參數

參數名稱 描述
g1 第一個Geometry對象。
g2 第二個Geometry對象。
densifyFrac 當指定參數densifyFrac時候,每一個分段會被分割成距離相等的更小分段,而所有分段的總距離最接近給出的大分段總距離。

描述

  • 弗雷歇距離是曲線之間相似度的量度,其中考慮了沿曲線的點的位置和順序。因此,它通常比豪斯多夫距離更好。
  • 如果設置了densifyFrac參數,該函數在計算離散弗雷歇距離之前執行段致密化。每個段將被分成多個等長的子段,每個子段之于總段的比例接近給定的分數。
  • 當前實現僅支持將頂點視為離散位置,并且不限制點的數量。
  • 指定的densifyFrac越小,得到的弗雷歇距離越精確。但是,計算時間和內存使用量與子段數的平方成正比。

示例

默認調用:
SELECT ST_FrechetDistance('LINESTRING (1 0,2 0)'::geometry, 'LINESTRING (-1 0,0 0)'::geometry);
 st_frechetdistance
--------------------
                  2
(1 row)