Referência e Manual do Usuário

ST_Distance

ST_Distance toma duas figuras geométricas e retorna a distância mais próxima que as separa.

Sintaxe

db2gse.ST_Distance(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)

Tipo de retorno

Duplo

Exemplos

O engenheiro da cidade precisa de uma lista de todas as construções que estejam dentro de 30 cm de qualquer linha do lote.

A coluna BUILDINGI_ID da tabela BUILDINGFOOTPRINTS identifica exclusivamente cada construção. A coluna LOT_ID identifica o lote a que cada construção pertence. O multipolígono da base armazena a figura geométrica de cada base da construção.

CREATE TABLE BUILDINGFOOTPRINTS (   building_id integer,
                                    lot_id      integer,
                                    footprint   db2gse.ST_MultiPolygon);

A tabela LOTS armazena a ID do lote que identifica exclusivamente cada lote e o multipolígono do lote que contém a figura geométrica de linha do lote.

CREATE TABLE LOTS ( lot_id   integer,
                    lot      db2gse.ST_MultiPolygon);

A consulta retorna uma lista de IDs de construção que estejam dentro de 30 cm das linhas do lote. A função ST_Distance executa uma junção espacial entre as bases e o limite dos multipolígonos do lote. No entanto, a equijunção entre bf.lot_id LOTS.lot_id assegura que somente os multipolígonos pertencentes ao mesmo lote sejam comparados pela função ST_Distance.

SELECT bf.building_id
FROM BUILDINGFOOTPRINTS bf, LOTS
 WHERE bf.lot_id = LOTS.lot_id AND
       db2gse.ST_Distance(bf.footprint, db2gse.ST_Boundary(LOTS.lot)) <= 1.0;


[ Início da Página | Página Anterior | Próxima Página | Índice | Índice Remissivo ]