ST_Distance toma dos geometrías y devuelve la distancia mínima que las separa.
Sintaxis
db2gse.ST_Distance(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo devuelto
Double
Ejemplos
El ingeniero municipal necesita una lista de todos los edificios que están a un pie o menos de una línea de parcela.
La columna BUILDING_ID de la tabla BUILDINGFOOTPRINTS identifica de forma exclusiva cada edificio. La columna LOT_ID identifica la parcela a la que pertenece cada edificio. La geometría varios polígonos de áreas edificadas almacena el área edificada correspondiente a cada edificio.
CREATE TABLE BUILDINGFOOTPRINTS ( building_id integer, lot_id integer, footprint db2gse.ST_MultiPolygon);
La tabla LOTS almacena el ID de parcela que identifica de forma exclusiva cada parcela y la geometría varios polígonos de parcela que contiene la geometría de líneas de la parcela.
CREATE TABLE LOTS ( lot_id integer, lot db2gse.ST_MultiPolygon);
La consulta devuelve una lista de los ID de edificios que están a un pie o menos de sus líneas de parcela. La función ST_Distance realiza una unión espacial entre las geometrías varios polígonos correspondientes a áreas edificadas y al límite de la parcela. Sin embargo, la unión entre bf.lot_id y LOTS.lot_id asegura que la función ST_Distance sólo compara las geometrías varios polígonos que pertenecen a la misma parcela.
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;