返回给定的两个Geometry对象的豪斯多夫距离。

语法

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

参数

参数名称 描述
g1 第一个Geometry对象。
g2 第二个Geometry对象。
densifyFrac 当指定参数densifyFrac时候,每一个分段会被分割成距离相等的更小分段,而所有分段的总距离最接近给出的大分段总距离。

描述

  • 该函数当前的实现只支持离散位置的点,并且不限制点的数量。
  • 注意该函数实现的算法不等同于标准的豪斯多夫距离。然而对于一个很大的Geometry对象集合来说,这是一个很接近的结果。
  • 该函数一个重要的适用对象是LineString,这些Geometry对象必须相互之间基本平行,长度基本相等。对于LineString的相似性度量来说很有用。

示例

默认调用:
SELECT st_hausdorffdistance('LINESTRING (1 0,2 0)'::geometry, 'LINESTRING (-1 0,0 0)'::geometry);
 st_hausdorffdistance
----------------------
                    2
(1 row)