Bonjour à tous!

Je débute sur le SQL (niveau quasi 0), et je travaille un cours sur des bases de données spatiales (avec des objets POINT et POLYGON).
J'aimerais avoir votre avis sur la démarche/syntaxe pour une requête particulière s'il vous plait:

Je possède 2 tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Points {
   ID    INT,
   Color   VARCHAR 
   Location    POINT};
 
Zones {
   ID    INT,
   Location   POLYGON};
si je souhaite obtenir les points bleus, et la distance à la zone la plus proche, comment devrais-je m'y prendre?
_________________________

J'avais pensé à la chose suivante (je ne sais pas si cette solution est possible):
On suppose que je possède une fonction PlusProcheVoisin(POINT p , TABLE table) qui prendrait un point et la table Zones en argument, et qui retournerait la zone la plus proche de ce point ; ainsi qu'une autre fonction distance(POINT p, POLYGON pol) qui donne la distance qui sépare un point d'un polygone (i.e. d'une zone).

Je pensais d'abord retirer les points bleus, ensuite faire une table d'association points/zoneLaPlusProche (je ne sais pas comment créer une telle table d'ailleurs mais disons que ca se fait et que j'ai la table "Association"), et enfin obtenir les distances qui les séparent.

Ca donnerait peut-être quelque chose comme ca:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT Points.ID, Zones.ID, distance(Points.Location, Zones.Location)
FROM Points, Zones, Association
WHERE Points.Colors = 'bleu'
   AND  Points.ID = Association.point_ID
   AND  Association.zone_ID = Zones.ID
est-ce que ca a un sens? et comment je peux faire cette table d'association avec ma fonction PlusProcheVoisin?

Merci pour votre aide