Benutzer- und Referenzhandbuch

Räumliche Abfrage erstellen

In diesem Abschnitt wird das Erstellen räumlicher Abfragen, die räumliche Funktionen und Prädikate verwenden, beschrieben.

Räumliche Funktionen und SQL

Der DB2 Spatial Extender umfaßt Funktionen, die verschiedene Operationen mit räumlichen Daten ausführen. Die Beispiele in diesem Abschnitt zeigen, wie Sie mit den räumlichen Funktionen eigene räumliche Abfragen erstellen können.

Tabelle 3 zeigt eine Liste der räumlichen Funktionen und der Arten von Operationen, die Sie ausführen können.

Tabelle 3. Räumliche Funktionen und Operationen
Funktionstyp Beispiel zur Operation
Berechnung Berechnet die Entfernung zwischen zwei Punkten
Vergleich Findet alle Kunden innerhalb eines Überflutungsbereichs
Datenaustausch Umwandeln von Daten in unterstützte Formate
Umsetzung Hinzufügen eines Fünf-Meilen-Radius zu einem Punkt

Weitere Informationen zu räumlichen Funktionen finden Sie in den Abschnitten Kapitel 13, Geometrien und zugeordnete räumliche Funktionen und Kapitel 14, Räumliche Funktionen für SQL-Abfragen.

Beispiel 1: Vergleich

Die folgende Abfrage findet die durchschnittliche Entfernung vom Kunden bis zum Kaufhaus. Die in diesem Beispiel verwendeten räumlichen Funktionen sind ST_Distance and ST_Within.

SELECT s.id, AVG(db2gse.ST_Distance(c.location,s.location))
FROM customers c, stores s
WHERE db2gse.ST_Within(c.location,s.zone)=1
GROUP BY s.id

Beispiel 2: Datenaustausch

Die folgende Abfrage findet die Kundenstandorte für die Kunden in der Gegend der San Francisco Bay. Die in diesem Beispiel verwendeten räumlichen Funktionen sind ST_AsText (Datenaustausch) und ST_Within. ST_AsText wandelt die räumlichen Daten in der Spalte c.location in das Format OGC TEXT um.

SELECT db2gse.ST_AsText(c.location,cordref(1))
FROM customers c
WHERE db2gse.ST_Within(c.location,:BayArea)=1
 

Beispiel 3: Berechnung

Die folgende Abfrage findet alle Straßen, die länger als 10,5 Meilen sind. Die in diesem Beispiel verwendete räumliche Funktion ist ST_Length.

SELECT s.name,s.id
FROM street s
WHERE db2gse.ST_Length(s.path) > 10.5
 

Beispiel 4: Umsetzung

Diese Abfrage findet die Kunden, die in einem Überflutungsgebiet oder innerhalb von 2 Meilen von den Grenzen eines Überflutungsgebiets wohnen. Die in diesem Beispiel verwendeten räumlichen Funktionen sind ST_Buffer (Umsetzung) und ST_Within.

SELECT c.name,c.phoneNo,c.address
FROM customers c
WHERE db2gse.ST_Within(c.location,ST_Buffer(:floodzone,2))=1
 


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]