ST_Crosses toma dois objetos de figura geométrica e retorna 1 (VERDADEIRO) se sua interseção resultar num objeto de figura geométrica cuja dimensão seja menor que a dimensão máxima dos objetos de origem. O objeto de interseção contém pontos que são interiores para as duas figuras geométricas de origem e não é igual a nenhum dos objetos de origem. Do contrário, retornará 0 (FALSO).
Sintaxe
db2gse.ST_Crosses(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo de retorno
Inteiro
Exemplos
A prefeitura do município está considerando uma nova lei que declara que todas as estações de armazenamento de lixo tóxico dentro do município não poderão estar dentro de 8 km de qualquer curso de água. O gerente GIS do município possui uma representação exata de rios e córregos, que está armazenada como cadeias de linhas múltiplas na tabela WATERWAYS. Mas, o gerente GIS apresenta somente uma única localização de ponto para cada estação de armazenamento de lixo tóxico.
CREATE TABLE WATERWAYS (id integer, name varchar(128), water db2gse.ST_MultiLineString); CREATE TABLE HAZARDOUS_SITES ( site_id integer, name varchar(128), location db2gse.ST_Point);
Para determinar se o supervisor do município precisa ser alertado das estações que violam o regulamento proposto, o gerente GIS deve ter buffer dos locais arriscados e verificar se algum rio ou córrego cruza o polígono do buffer. O predicado ST_Crosses compara os HAZARDOUS_SITES com buffer aos WATERWAYS. Assim, retornam somente esses registros nos quais o curso da água cruza o raio regulamentado proposto pelo município.
SELECT ww.name "River or stream", hs.name "Hazardous site" FROM WATERWAYS ww, HAZARDOUS_SITES hs WHERE db2gse.ST_Crosses(db2gse.ST_Buffer(hs.location,(5 * 5280)),ww.water) =1;
Na Figura 31, o buffer de 8 km dos locais de lixo tóxico cruza a rede de córregos que passa pelo distrito administrativo do município. A rede de córregos foi definida como uma cadeia de linhas múltiplas. Portanto, o conjunto de resultados inclui segmentos da cadeia de linha que fazem parte destes segmentos que cruzam o raio.
Figura 31. Utilizando ST_Crosses para encontrar cursos de água que passam por área de lixo tóxico
![]() |