返回给定的两个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)