返回Geometry對象相交的點集對應的Geometry對象。
文法
geometry ST_Intersection(geometry geomA , geometry geomB);
geography ST_Intersection(geography geogA , geography geogB);
geometry ST_Intersection(geometry set gField);
參數
參數名稱 | 描述 |
geomA/geomB | 兩個目標Geometry對象。 |
geogA/geogB | 兩個目標Geography對象。 |
gField | Geometry欄位。 |
描述
如果輸入的兩個對象沒有任何公用的部分或者不相交,那麼該函數返回一個Null 物件。
對於Geography類型對象,該函數只是對Geometry型函數的簡單封裝。該函數首先將其轉換成Geometry對象,然後在平面參考系中相交得到交集,然後轉換回WGS84參考系,變成Geography類型對象。
該函數不支援GeometryCollection類型對象作為輸入參數。
該函數會丟棄對象的M座標值。
彙總函式會將所有Geometry對象依次執行intersection,返回所有對象的交集部分。
樣本
預設調用:
SELECT ST_AsText(ST_Intersection('POLYGON((0 0,0 2,2 2,2 0,0 0))'::geometry,'POLYGON((0 0,3 0,3 1,0 1,0 0))'::geometry)); st_astext -------------------------------- POLYGON((0 1,2 1,2 0,0 0,0 1)) (1 row)
彙總裁剪
create table agg_result(id integer, geom geometry); insert into agg_result values(0, ST_GeomFromText('POLYGON((0 0, 0 0.5, 0.5 0.5, 0.5 0, 0 0))')); insert into agg_result select i, st_buffer('POINT(0 0)', 0.8 + random()*0.1) from generate_series(1,100) as i; select st_astext(st_intersection(geom)) from agg_result; st_astext ---------------------------------------- POLYGON((0 0,0 0.5,0.5 0.5,0.5 0,0 0)) (1 row)