ST_Distance verwendet zwei Geometrieobjekte und gibt die kleinste Entfernung zwischen diesen Objekten zurück.
Syntax
db2gse.ST_Distance(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Rückgabetyp
Double
Beispiele
Der Stadtplaner benötigt eine Liste aller Gebäude, deren Entfernung bis zum Grundstücksrand maximal 1 Fuß (30,48 cm) beträgt.
Die Spalte BUILDING_ID der Tabelle BUILDINGFOOTPRINTS kennzeichnet jedes Gebäude eindeutig. Die Spalte LOT_ID kennzeichnet das Grundstück, zu dem das jeweilige Gebäude gehört. Das Multipolygon der Gebäudegrundfläche speichert die Geometrie der Grundfläche jedes Gebäudes.
CREATE TABLE BUILDINGFOOTPRINTS ( building_id integer, lot_id integer, footprint db2gse.ST_MultiPolygon);
Die Tabelle LOTS speichert die lot-ID, die jedes Grundstück eindeutig kennzeichnet sowie das Multipolygon, das die Geometrie der Grundstückslinie enthält.
CREATE TABLE LOTS ( lot_id integer, lot db2gse.ST_MultiPolygon);
Die Abfrage gibt eine Liste der Gebäude-IDs zurück, die einen Abstand von maximal 1 Fuß zu der jeweiligen Grundstückslinie haben. Die Funktion ST_Distance führt eine räumliche Verknüpfung zwischen den Grundflächen und der Begrenzung der Grundstückspolygone durch. Die Gleichsetzungsverknüpfung zwischen bf.lot_id und LOTS.lot_id stellt jedoch sicher, daß nur die Multipolygone zu dem gleichen Grundstück mit der Funktion ST_Distance verglichen werden.
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;