ST_Distance は 2 つの図形を引き数とし、両者の間の最短距離を戻します。
構文
db2gse.ST_Distance(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
戻りタイプ
倍精度
例
都市計画担当者は、敷地境界線から 1 フィート以内にあるすべての建物のリストを必要としています。
BUILDINGFOOTPRINTS 表の BUILDING_ID 列は、それぞれの建物を一意的に識別しています。 LOT_ID 列は、それぞれの建物が属する敷地を識別しています。 footprint 複数ポリゴンには、それぞれの建物の図形が格納されています。
CREATE TABLE BUILDINGFOOTPRINTS ( building_id integer, lot_id integer, footprint db2gse.ST_MultiPolygon);
LOTS 表には、それぞれの敷地を一意的に識別する敷地識別子、および敷地境界線の図形を含む複数ポリゴンが格納されています。
CREATE TABLE LOTS ( lot_id integer, lot db2gse.ST_MultiPolygon);
この照会は、敷地境界線から 1 フィート以内にある建物 ID のリストを戻します。 ST_Distance 関数は、footprint と lot 複数ポリゴンとの地理情報上の結合を実行します。ただし、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;