我有以下postgis查询:
select st_pointonsurface(geometry), geometry, other, important, columns
from my_polygons;在大约2.5m的结果之后,有一个函数失败的记录。
ERROR: GEOSPoint OnSurface: TopologyException:
Input geom 1 is invalid: Self-intersection at or near
point -9083598.0378282126 3646413.3039207752 at -9083598.0378282126 3646413.3039207752从几何学的角度看,我知道为什么这个失败了。这是个不好的多边形。
我也想
null并返回其他列)。我怎样才能得到这些结果中的任何一个?
发布于 2018-11-14 04:44:12
此函数将“尝试/捕获”该函数,在任何异常情况下返回null。
CREATE OR replace FUNCTION polylabel(arg geometry)
RETURNS geometry LANGUAGE plpgsql
AS $$
BEGIN
BEGIN
RETURN st_pointonsurface(arg);
EXCEPTION WHEN OTHERS THEN
RETURN null;
end;
END $$;https://stackoverflow.com/questions/53291720
复制相似问题