ST_Distance rileva due geometrie e restituisce la distanza più vicina.
Sintassi
db2gse.ST_Distance(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo di ritorno
Double
Esempi
Un ingegnere desidera consultare un elenco di tutti gli edifici situati ad una determinata distanza (foot=piede) dai lotti.
La colonna BUILDING_ID della tabella BUILDINGFOOTPRINTS identifica ogni edificio in modo univoco. La colonna LOT_ID identifica il lotto a cui appartiene ciascun edificio. Il multipoligono delle piantine memorizza la geometria delle piantine di ciascun edificio.
CREATE TABLE BUILDINGFOOTPRINTS ( building_id integer, lot_id integer, footprint db2gse.ST_MultiPolygon);
La tabella LOTS memorizza l'ID lotto che identifica ogni LOT in modo univoco, e il multipoligono LOT che contiene la geometria lineare.
CREATE TABLE LOTS ( lot_id integer, lot db2gse.ST_MultiPolygon);
L'interrogazione restituisce un elenco di ID degli edifici situati entro il valore specificato di una determinata unità di misura dalla linea di demarcazione del lotto. La funzione ST_Distance segue un'unione spaziale tra le piantine e il limite dei multipoligoni dei lotti. Tuttavia, questa unione tra bf.lot_id e LOTS.lot_id garantisce che soltanto i multipoligoni che appartengono allo stesso lotto vengono confrontati dalla funzione 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;