ST_Intersection无法与postgis一起正常工作



我在Postgis中使用ST_Intersection函数,带有MultipointPolygon几何图形,但我无法计算结果。

这里有一个使用ST_Intersection:的SQL请求示例


SELECT ST_AsText(
ST_Intersection(
ST_GeomFromText('MULTIPOINT(1 1, 1 1)'),
ST_GeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))')
)
);

输出:


'POINT(1 1)' /* I expected MULTIPOINT(1 1, 1 1) as result */

正如我们所看到的,ST_Intersection已经删除了重复项,这不是我所期望的
使用GEOSlib的所有库的结果都是一样的

在数学方法中,让我们考虑两个数字集:
从逻辑上讲,这两个集的交集必须返回两者中包含的所有数字,即使它们是重复的,如下所示:

S1={1,2,3,4}
S2={1,2}
S1交叉点S2={1,2}

那么,我是不是错过了什么?

与集合不同,多集合可以包含重复的元素,但两个多集合的交集的结果是包含两个多集的元素的最小多重性的多集合。

例如:{1,1,2,3} intersection {1,2,2,4} = {1,2}

因此ST_intersection(Geometry A, Geometry B)将删除两个几何结构中包含的重复项

最新更新