POSTGIS:TRIGGER插入最大区域

时间:2015-11-05 18:37:33

标签: postgresql postgis

我对以下代码没有好运。 我正在编辑数据库中的多边形。如果,这将是伟大的 我的新多边形来自背景层" polya"一个特定的价值。 不幸的是,我的新图层并不关心背景层的边界。在这种情况下,它应该取值 我编辑的最大部分与背景层相交的地方。 我希望你能帮助我。

Overview_QGIS

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;

1 个答案:

答案 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;