SQL Server 2008 : Ma démonstration des données SPATIALES en plénière des TechDays le 12 février (2/4)
La première partie de cette démonstration a été réalisée avec l'outil tiers Sql Spatial Query Visualizer ( disponible ici : https://www.sharpgis.net/
2e requête : la table des pays du monde (avec une colonne de type géographique)
On peut trouver sur Internet des bases de données de polygones (plus sur ce point dans un prochain message) qu'il faut ensuite charger via, par exemple, l'utilitaire Shape2Katmai.
A chaque pays est associé un polygone que l'on peut ensuite colorer via le contenu des colonnes FillColor et LineColor. Le noms de ces colonnes est spécifique à l'application Sql Spatial Query Visualizer.
Voici la requête complète :
SELECT *, geom.STArea()/10E11 as FillColor, 'Transparent' as LineColor
FROM PAYS;
Cela donne une table de ce type :
Cet affichage est une illustration intéressante de codage de couleurs ("color coding") . Il permet de mettre en bleu foncé les grands pays (plus de 1 million de km² de superficie). Ainsi on fait apparaître dans des teintes plus visibles du vert au rouge en passant par le jaune et le orange les pays plus petits qui sont ainsi mis en évidence.
3e requête : fonctions de manipulation géométriques
Une fois la base des pays chargée, on peut utiliser les fonctions de manipulation géométriques comme l'intersection.
La requête suivante :
DECLARE @un_pays geography
SET @un_pays = (SELECT geom FROM pays WHERE name='Argentina');
SELECT *,geom.STArea()/10E11 as FillColor
FROM Pays
WHERE geom.STIntersection(@un_pays).STIsEmpty() <> 1 AND
geom.STEquals(@un_pays) <> 1;
permet ainsi de trouver tous les voisins d'un pays donné (défini dans la variable @un_pays)
Cela donne ceci :
ou graphiquement, les voisins de l'Argentine :
C'est alors que Philippe, mon vrai chef, intervient pour me dire "C'est beau certes, mais à quoi cela sert-il ???"
Un début de réponse dans le message suivant ...