我想对ST_Intersection(clipper_geom, clipped_geom)
来自表的行数执行。
https://postgis.net/docs/ST_Intersection.html
https://postgis.net/docs/ST_Intersects.html
POSTGIS 交集本身不支持处理多个几何图形,这与ST_Intersects()
我必须设计一个函数(返回一个表)来选择与我的clipper_geom
using相交的行ST_Intersects()
、循环遍历结果集并计算与 的每个交集有关ST_Intersection()
。字段geom
和clipped_geom_wkt
是记录剪裁几何体的字段。
该功能有效,但我需要为每个要生成剪辑的表使用不同的功能。我想动态读取输入表(列名称和类型)并在RETURN
语句中定义两者。
所有字段名称和类型都相同,只是geom
更新和clipped_geom_wkt
添加。
我尝试搜索 Stack Overflow,找到了有关如何创建动态表结构的示例,但没有一个LOOP
对第一个结果执行后续操作,其中列名必须匹配才能插入/更新新数据。
这是我到目前为止所提出的,但我不确定如何执行该LOOP
部分、添加clipped_geom_wkt
字段和更新geom
字段。一些回复建议RETURNS TABLE (...)
如果添加更多字段SETOF
...
但似乎动态生成的列仅支持RETURNS SETOF ...
CREATE OR REPLACE FUNCTION clip_palin_polygon_complete(clipped_table text,clipper_geom text, age_sequence VARCHAR)
RETURNS TABLE (rec clipped_table, clipped_geom_wkt text)) AS $$ --not sure if this is the right way to …
Run Code Online (Sandbox Code Playgroud)