Guide d'utilisation et de référence


Création d'une requête spatiale

La présente section explique comment créer des requêtes spatiales qui utilisent des fonctions et prédicats spatiaux.

Fonctions spatiales et SQL

Extension Spatiale comprend des fonctions permettant d'effectuer diverses opérations sur les données spatiales. Les exemples décrits dans la présente section vous indiquent comment utiliser des fonctions spatiales pour créer vos propres requêtes spatiales.

Le Tableau 3 contient une liste des fonctions spatiales et des opérations correspondantes.

Tableau 3. Fonctions spatiales et opérations
Type de fonction Exemple d'opération
Calcul Calcul de la distance entre deux points
Comparaison Trouver tous les clients situés dans une zone d'inondation
Echange de données Conversion des données en formats pris en charge
Transformation Ajouter un rayon de 7 km autour d'un point

Pour plus d'informations sur les fonctions spatiales, reportez-vous au Géométries et fonctions spatiales associées, et au Fonctions spatiales associées aux requêtes SQL.

Exemple 1 : Comparaison

La requête ci-après permet d'identifier la distance moyenne existant entre les clients et chaque grand magasin. Les fonctions spatiales utilisées sont les suivantes : ST_Distance et 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

Exemple 2 : Echange de données

La requête ci-après permet de localiser les clients qui habitent dans la région de San Francisco. Les fonctions spatiales utilisées sont les suivantes : ST_AsText (échange de données) et ST_Within. ST_AsText convertit les données spatiales de la colonne c.location au format OGC TEXT.

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

Exemple 3 : Calcul

La requête ci-après permet de trouver toutes les rues dépassant 16 km (10,5 miles) de longueur. La fonction spatiale utilisée est la suivante : ST_Length.

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

Exemple 4 : Transformation

La requête ci-après permet d'identifier les clients qui vivent à l'intérieur de la zone d'inondation ou dans un périmètre de 3 km au-delà de cette zone. Les fonctions spatiales utilisées sont les suivantes : ST_Buffer (transformation) et ST_Within. La variable :floodzone est une variable SQL d'un programme SQL imbriqué écrit en C/C++.

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


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]