我对以下代码没有好运。 我正在编辑数据库中的多边形。如果,这将是伟大的 我的新多边形来自背景层" polya"一个特定的价值。 不幸的是,我的新图层并不关心背景层的边界。在这种情况下,它应该取值 我编辑的最大部分与背景层相交的地方。 我希望你能帮助我。
BEGIN
SELECT string_agg(polya."FOO1",', '))
INTO NEW."FOO2"
FROM "xyz" as polya
WHERE
ST_AREA(ST_Intersection(NEW.the_geom,polya.the_geom))=GREATEST(ST_AREA(ST_Intersection(NEW.the_geom,polya.the_geom)));
RETURN NEW;
END;
答案 0 :(得分:1)
按下降顺序按区域排序交叉点多边形,并将结果集限制为1.
BEGIN
SELECT polya.FOO1
INTO NEW.FOO2
FROM yxz as polya
WHERE ST_Intersects(NEW.the_geom,polya.the_geom)
ORDER BY ST_Area(ST_Intersection(NEW.the_geom,polya.the_geom)) desc
LIMIT 1;
RETURN NEW;
END;