ST_Equals compare deux géométries et renvoie la valeur 1 (TRUE) si elles sont identiques, et la valeur 0 (FALSE) dans le cas contraire.
Syntaxe
db2gse.ST_Equals(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Type de retour
Integer
Exemples
Le technicien SIG de la ville pense que certaines données de la table BUILDINGFOOTPRINTS ont été dupliquées d'une manière ou d'une autre. Il analyse la table pour déterminer s'il existe des multipolygones de bâtis égaux.
La table BUILDINGFOOTPRINTS est créée à l'aide de l'instruction ci-après. La colonne BUILDING_ID identifie les bâtiments de manière univoque, la colonne LOT_ID, la parcelle du bâtiment, et la colonne FOOTPRINT contient la géométrie des bâtiments.
CREATE TABLE BUILDINGFOOTPRINTS ( building_id integer, lot_id integer, footprint db2gse.ST_MultiPolygon);
La table BUILDINGFOOTPRINTS est jointe spatialement à elle-même par le prédicat ST_Equals qui renvoie la valeur 1 dès qu'elle trouve deux multipolygones équivalents. La condition bf1.building_id <> bf2.building_id s'impose pour éliminer toute comparaison d'une géométrie avec elle-même.
SELECT bf1.building_id, bf2.building_id FROM BUILDINGFOOTPRINTS bf1, BUILDINGFOOTPRINTS bf2 WHERE db2gse.ST_Equals(bf1.footprint,bf2.footprint) = 1 and bf1.building_id <> bf2.building_id;