De la même manière que vous construisez n'importe quel autre type de requête pour vos bases de données, comme une combinaison SQL de valeurs de retour, fonctions et autre tests booléens.
Pour les requêtes spatiales, il y a deux choses importantes à garder à l'esprit lorsque vous construisez votre requête : y-a-t-il un index spatial que vous pouvez utiliser ; et, faites vous des calculs couteux sur un grand nombre de géométries.
En général, vous voudrez utiliser l'opérateur d'intersection (&&
) qui test si les cadres limites des objets s'intersectent. La raison pour laquelle l'opérateur &&
est utile vient du fait que si un index spatial est disponible pour accélérer le test, l'opérateur &&
l'utilisera. Ceci peut rendre les requête beaucoup plus rapides.
Vous pourrez aussi utiliser des fonctions spatiales, comme par exemple Distance()
, Intersects()
, Contains()
et Within()
, parmi tant d'autres, pour limiter les résultats de vos recherches. La plupart des requêtes spatiales contiennent à la fois un test indexé et un test utilisant une fonction spatiale. Le test indexé sert à limiter le nombre de tuples résultants, uniquement ceux qui respectent la condition. La fonction spatiale est ensuite utilisée afin de tester réellement la condition.
WHERE
the_geom && 'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'
AND
Contains(the_geom,'POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))';
Posted in version imprimable | Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | 6114 lectures
Posté par rédacteurs le 6 Avril, 2006 - 19:28.