Retorna um objeto Geometry que representa a interseção dos objetos Geometry de entrada.
Sintaxe
geometry ST_Intersection(geometry geomA , geometry geomB);
geography ST_Intersection(geography geogA , geography geogB);
geometry ST_Intersection(geometry set gField);
Parâmetros
|
Nome do parâmetro |
Descrição |
|
geomA/geomB |
Os dois objetos Geometry de destino. |
|
geogA/geogB |
Os dois objetos Geography de destino. |
|
gField |
O campo Geometry. |
Descrição
Se os dois objetos de entrada não se cruzarem, a função retornará um objeto nulo.
Para objetos Geography, esta função encapsula a função Geometry. Ela transforma os objetos Geography em objetos Geometry, calcula a interseção em um sistema de referência planar e converte o resultado novamente para um objeto Geography com o sistema de coordenadas WGS84.
Esta função não aceita objetos GeometryCollection como parâmetros de entrada.
Esta função descarta os valores da coordenada M dos objetos.
A função agregada intersecta sequencialmente todos os objetos Geometry e retorna a interseção resultante.
Exemplos
-
Chamada padrão:
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) -
Recorte agregado
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)