Opérateurs spatiaux Oracle
SDO_RELATE
Opérateur principal pour tester les relations topologiques.
SELECT a.nom
FROM villes a, regions b
WHERE b.nom = 'Île-de-France'
AND SDO_RELATE(
a.geometry,
b.geometry,
'mask=inside'
) = 'TRUE';Retourne les villes à l’intérieur de la région Île-de-France.
Utilise l’index spatial si disponible.
SDO_FILTER
Opérateur de filtre rapide basé uniquement sur les MBR.
SELECT a.nom
FROM villes a, regions b
WHERE b.nom = 'Île-de-France'
AND SDO_FILTER(
a.geometry,
b.geometry
) = 'TRUE';Plus rapide que SDO_RELATE mais moins précis (approximation).
Utile en première étape avant un filtrage exact.
SDO_NN (Nearest Neighbor)
Trouve les K plus proches voisins d’une géométrie.
SELECT nom, ville_id
FROM villes
WHERE SDO_NN(
geometry,
SDO_GEOMETRY(2001, 8307,
SDO_POINT_TYPE(2.35, 48.85, NULL), NULL, NULL),
'sdo_num_res=5'
) = 'TRUE';Retourne les 5 villes les plus proches du point spécifié.
La colonne geometry doit être indexée.
sdo_num_res : nombre de résultats (défaut = 1).
SDO_WITHIN_DISTANCE
Trouve les géométries dans un rayon donné.
SELECT nom
FROM villes
WHERE SDO_WITHIN_DISTANCE(
geometry,
SDO_GEOMETRY(2001, 8307,
SDO_POINT_TYPE(2.35, 48.85, NULL), NULL, NULL),
'distance=10 unit=km'
) = 'TRUE';Retourne les villes dans un rayon de 10 km.
L’unité doit être compatible avec le SRID.