作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 st_3darea、st_3dintersection 等 sfcgal 扩展方法有问题,使用多多边形。
当多边形接触时,我收到一个错误,说多边形相交。
这两个三角形显然不是相交只是相交:
SELECT st_3darea(ST_GeomFromText(
'MULTIPOLYGON Z (((1 0 0, 1 1 0, 0 1 1, 1 0 0)),
((1 0 0, 0 1 1, 0 0 1, 1 0 0)))'));
但我有一个错误:
ERROR: MultiPolygon is invalid : intersection between Polygon 0 and 1 : MULTIPOLYGON(((1/1 0/1 0/1,1/1 1/1 0/1,0/1 1/1 1/1,1/1 0/1 0/1)),((1/1 0/1 0/1,0/1 1/1 1/1,0/1 0/1 1/1,1/1 0/1 0/1)))
SQL state: XX000
请帮忙。
最佳答案
您的 MULTIPOLYGON
无效,因为多边形相交。使用 ST_MakeValid
为了克服这个问题:
SELECT
ST_3DArea(
ST_MakeValid('MULTIPOLYGON Z (((1 0 0, 1 1 0, 0 1 1, 1 0 0)),
((1 0 0, 0 1 1, 0 0 1, 1 0 0)))'::geometry));
st_3darea
------------------
1.41421356237309
(1 row)
正如@JGH 所指出的(见评论):
ST_Overlaps, ST_Touches, ST_Within all imply spatial intersection. If any of the aforementioned returns true, then the geometries also spatially intersect. Disjoint implies false for spatial intersection.
关于postgresql - POSTGRES POSTGIS sfcgal - st_3darea 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68379566/
我对 st_3darea、st_3dintersection 等 sfcgal 扩展方法有问题,使用多多边形。 当多边形接触时,我收到一个错误,说多边形相交。 这两个三角形显然不是相交只是相交: SE
我是一名优秀的程序员,十分优秀!