SQL SERVER 2008, DonnEES SPATIALES : QUELQUES subtilités !

La représentation de données géométriques (points, lignes, polygones) sur une surface quasi-sphérique comme la Terre représente quelques subtilités, qu'il vaut mieux appréhender avant de se lancer dans la réalisation d'une application utilisant ces types de données.

Avec SQL Server 2008, le type de données geography encapsule une partie de ses subtilités mais voici quelques points à avoir en tête !

https://technet.microsoft.com/en-us/library/bb964711(SQL.100).aspx 

 

1°) Les lignes droites ne sont pas droites

La ligne droite sur une carte plane n'est presque jamais la plus courte façon d'aller d'un point à un autre.

Pour s'en convaincre, il suffit de regarder ces cartes extraites du message suivant : Straight lines on a sphere (à lire pour de plus amples détails)

Pour aller (beaucoup) plus loin : Accurate distance calculations in UTM projections 

2°) Les carrés ne sont pas carrés !

https://sqlblogcasts.com/blogs/simons/archive/2008/01/13/SQL-Server-2008-Spatial---What-shape-is-a-square-.aspx 

image

3°) les ronds ne sont pas ronds !

400km buffer around Copenhagen

(from The community works )

 

4°) Les polygones doivent tourner ronds !  ou plutôt dans le sens contraire des aiguilles d'une montre.

Comme cela est expliqué ici : https://conceptdev.blogspot.com/2007/12/sql-server-2008-geography-vs-geometry.html 

Sur cet exemple le tracé en vert (dans le sens inverse des aiguilles d'une montre) est valide alors que le tracé en rouge (dans le sens des aiguilles d'une montre) n'est pas valide !

 

5°) Les latitudes (Y) s'expriment avant les longitudes (X)

Ce qui est l'inverse de la règle sur les données de type geometry. Comme cela est détaillé ici : https://geobabble.wordpress.com/2007/12/18/sql-server-2008-wkt-xy-switching-illustrated/ 

image

Cependant ce point entraînant beaucoup de discussions, cela devrait changer : Latitude-Longitude Ordering !

 

5°) Chaque objet doit est contenu dans un hémisphère

Les raisons en sont expliquées ici : https://stevekass.com/2007/11/21/the-hemisphere-requirement/