16.11.2014 Aufrufe

Tabelle wird für jede geometrische Instanz eine eigene Zeile ...

Tabelle wird für jede geometrische Instanz eine eigene Zeile ...

Tabelle wird für jede geometrische Instanz eine eigene Zeile ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Räumliche Operatoren<br />

Räumliche Operatoren unterscheiden sich von den räumlichen Funktionen durch die<br />

Art ihrer Rückgabewerte. Sie liefern im Gegensatz zu den differenzierten Werten der<br />

Funktionen lediglich true oder false zurück. Sie können daher in where-Klauseln <strong>eine</strong>s<br />

select-Statements als Filter eingesetzt werden, um die Anzahl der aufwendigeren<br />

Funktionsaufrufe zu reduzieren. In Oracle 8i-Spatial existieren vier räumliche Operatoren:<br />

SDO FILTER(, , )<br />

Dieser Operator <strong>wird</strong> eingesetzt, um <strong>eine</strong> Kandidatenmenge von räumlichen Objekten<br />

für weitere Untersuchungen zu identifizieren. Basierend auf dem räumlichen<br />

Index überprüft dieser Operator, ob die übergebenen Geometrien gemeinsame Kacheln<br />

besitzen. Ist dies der Fall, so <strong>wird</strong> true zurückgeliefert, andernfalls false.<br />

SDO RELATE(, , )<br />

Mit diesem Operator <strong>wird</strong> getestet, ob die übergebenen Geometrie-Objekte in <strong>eine</strong>r<br />

bestimmten räumlichen Beziehung zueinander stehen. Die zu untersuchende Beziehung<br />

<strong>wird</strong> als Parameter angegeben. Beziehungen, die überprüft werden können,<br />

entsprechen denen der Funktion SDO GEOM.RELATE(). Dieser Operator liefert true<br />

zurück, falls die angegebene Beziehung zwischen den Objekten besteht, andernfalls<br />

false. Er bestimmt im Gegensatz zu SDO FILTER() kein approximiertes, sondern das<br />

exakte Ergebnis.<br />

SDO WITHIN DISTANCE(., , )<br />

Dieser Operator überprüft, ob der Abstand zweier Objekte kl<strong>eine</strong>r als ein vorgegebener<br />

Wert ist. Die erste Geometrie muss aus <strong>eine</strong>r räumlich indexierten <strong>Tabelle</strong><br />

stammen, die zweite kann ein beliebiges Objekt vom Typ MDSYS.SDO GEOMETRY<br />

sein.IstderAbstandkl<strong>eine</strong>ralsdervorgegebeneWert,soistderRückgabewert true,<br />

andernfalls false.<br />

SDO NN(., , )<br />

Berechnet die n nächsten Nachbarn von aus der als erstes Argument<br />

angegebenen <strong>Tabelle</strong>nspalte. Das erste Argument muss <strong>eine</strong> <strong>Tabelle</strong>nspalte vom Typ<br />

MDSYS.SDO GEOMETRY sein, das zweite <strong>eine</strong> feste Geometrie. Der Operator kann<br />

nur in der where-Klausel <strong>eine</strong>r Anfrage verwendet werden und mit = ’TRUE’ abgefragt<br />

werden. Der Parameter sdo num res spezifiziert, wieviele nächste Nachbarn<br />

gefunden werden sollen.<br />

DetailszuallenOperatoreninsbesondere<strong>eine</strong>ausführliche Beschreibung der Parameter<br />

findet man in [Ora99b].<br />

Beispiele für die Verwendung der Funktionen und Operatoren in Anfragen:<br />

1. Gib alle Länder mit ihrem Namen und ihrer Fläche aus:<br />

SELECT c.name, SDO GEOM.SDO AREA(c.shape, m.diminfo) as flaeche<br />

FROM country c, user sdo geom metadata m<br />

WHERE m.table name = ’COUNTRY’ AND m.column name = ’SHAPE’;<br />

24

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!