Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_HAUSDORFFDISTANCE

📄字数 768
👁️阅读量 加载中...

功能描述

返回两个几何图形之间的 Hausdorff 距离。

语法格式

sql
DOUBLE ST_HAUSDORFFDISTANCE(GEOMETRY g1, GEOMETRY g2);
DOUBLE ST_HAUSDORFFDISTANCE(GEOMETRY g1, GEOMETRY g2, float DOUBLE);

参数说明

  • g1:第一个目标 GEOMETRY 对象。
  • g2:第二个目标 GEOMETRY 对象。
  • densifyFrac:指定此参数时,以便在计算离散 Hausdorff 距离之前通过致密分段来提供更准确的答案。每个段将被分成多个等长的子段,其总长度的分数最接近给定的分数。

函数返回类型

DOUBLE 类型

使用说明

  1. Hausdorff距离是对 2 个几何形状相似或不相似程度的度量。
  2. 该函数实际上计算“离散Hausdorff距离”。
  3. 单位采用几何空间参考系的单位。
  4. 该算法不等同于标准 Hausdorff距离。 然而,它计算出的近似值对于大部分有用案例都是正确的。 一种重要的情况是线串彼此大致平行且长度大致相等。 这是线路匹配的有用指标。

示例

sql
SQL> SELECT ST_HAUSDORFFDISTANCE(geomA, geomB),
            ST_DISTANCE(geomA, geomB)
         FROM (SELECT 'LINESTRING (20 70, 70 60, 110 70, 170 70)'::GEOMETRY AS geomA,
                      'LINESTRING (20 90, 130 90, 60 100, 190 100)'::GEOMETRY AS geomB) AS t;

+--------------+--------------+
|    EXPR1     |    EXPR2     |
+--------------+--------------+
| 3.726207e+01 | 2.000000e+01 |
+--------------+--------------+

(1 row)

致密化的Hausdorff 距离。

sql
SQL> SELECT ST_HAUSDORFFDISTANCE(
                 'LINESTRING (130 0, 0 0, 0 150)'::GEOMETRY,
                 'LINESTRING (10 10, 10 150, 130 10)'::GEOMETRY,
                 0.5);

+--------------+
|    EXPR1     |
+--------------+
| 7.000000e+01 |
+--------------+

(1 row)