ST_Distance 接受两个几何图形并返回它们之间的最近距离。
语法
db2gse.ST_Distance(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
返回类型
双精度
示例
城市工程师需要任何地块线的一英尺内的所有建筑物的列表。
BUILDINGFOOTPRINTS 表的 BUILDING_ID 列唯一地标识每个建筑物。 LOT_ID 列标识每个建筑物所属的地块。 占地形状多边形存储每个建筑物的占地形状的几何图形。
CREATE TABLE BUILDINGFOOTPRINTS ( building_id integer, lot_id integer, footprint db2gse.ST_MultiPolygon);
LOTS 表存储唯一地标识每个地块的地块 ID 和包含地块线几何图形的地块复合多边形。
CREATE TABLE LOTS ( lot_id integer, lot db2gse.ST_MultiPolygon);
该查询返回建筑物 ID 的列表,这些建筑物在其地块线的一英尺之内。 ST_Distance 函数在占地形状和地块复合多边形的边界之间执行 Spatial 连接。 然而,bf.lot_id 和 LOTS.lot_id 之间的对等连接确保 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;