J'ai quelques centaines de formes ( polygon
s et multipolygon
s) constitués chacun de plusieurs dizaines de milliers de points que je suis en train d'entrer dans SQL 2008.
Malheureusement, les formes que j'ai essayé d'importer sont "droitières" (le périmètre de chacune est tracé dans le sens des aiguilles d'une montre autour des points qu'il contient). Serveur SQL suppose « gauchers » formes ( dans le sens antihoraire autour de l'intérieur), au moins pour les geography
types. Cela signifie que SQL suppose que j'essaie de sélectionner la terre entière à l' exception de ma forme. Certaines personnes décrivent cela comme des formes "à l'envers".
De MSDN , qui ne dit pas avec frustration quelle orientation d'anneau on doit utiliser:
Si nous utilisons le
geography
type de données pour stocker l'instance spatiale, nous devons spécifier l'orientation de l'anneau et décrire avec précision l'emplacement de l'instance.
Si vous utilisez la mauvaise orientation de l'anneau dans SQL 2008, il se bloque avec l'erreur suivante (c'est moi qui souligne):
Une erreur .NET Framework s'est produite lors de l'exécution d'une routine définie par l'utilisateur ou d'une "géographie" agrégée: Microsoft.SqlServer.Types.GLArgumentException: 24205: L'entrée spécifiée ne représente pas une instance géographique valide car elle dépasse un seul hémisphère. Chaque instance de géographie doit tenir dans un seul hémisphère. Une raison courante de cette erreur est qu'un polygone a la mauvaise orientation d'anneau.
L'importation des formes au geometry
lieu de geography
fonctionne très bien, mais j'aimerais utiliser geography
si je le peux.
Dans SQL 2012, il semble assez trivial de résoudre ce problème, mais je suis lié à 2008.
Comment dois-je convertir les formes?