Vermeidung von Überlappungen beim Erstellen von neuen Datensätzen

Aus kvwmap
Version vom 24. Mai 2013, 12:18 Uhr von Rahn (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Wenn man verhindern möchte, dass in einem Layer Datensätze angelegt werden, deren Geometrie sich mit anderen Datensätzen überlappt, kann man das mit einer Regel in der PostgreSQL-DB tun. Die Regel hat folgende Form:

CREATE OR REPLACE RULE avoid_overlap AS
ON INSERT TO tabelle
WHERE ( SELECT true AS bool
        FROM tabelle
        WHERE st_overlaps(new.the_geom, tabelle.the_geom) limit 1) 
DO INSTEAD NOTHING;

Soll dieser Test auch bei Änderung eines Datensatz erfolgen, muss eine entsprechende Regel für ON UPDATE erstellt werden.