2015-11-05 20 views
0

我沒有運氣,下面的代碼。 我正在編輯我的數據庫中的多邊形。如果 我的新polygone從背景圖層「polya」獲得一個特定值,那將是非常好的。不幸的是,它可能會發生,我的新層不關心backgroundlayer的邊界。在這種情況下,它應該取值 ,其中我編輯的最大部分與backgroundlayer相交。 我希望你能幫助我。POSTGIS:TRIGGER插入到最大面積

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

訂單在下降爲了該地區的交集多邊形和限制結果設置爲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; 
+0

非常感謝你對你的快速反應。如果我理解正確的話:第一個值是最大的區域,其餘的你切斷? – rupi42

+0

是的,你是對的。 – yxcv