Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server 2012, geographic.STContains, mauvais résultat ?

Maintenant, j'ai trouvé le problème. L'utilisateur a dessiné le polygone en commençant en bas à droite et dans le sens des aiguilles d'une montre. Si je réorganise les points à partir de la plus grande latitude, puis que je vais dans le sens inverse en triant sur long, lat cela fonctionne. J'ai trouvé une aide pour cela, mais cela ne fonctionne que si vous "savez que c'est faux":

if(sqlGeography.EnvelopeAngle() > 90)
    sqlGeography ? sqlGeography.ReorientObject();

Il suffit de mettre en place une petite solution qui fixera mes valeurs :https://github.com/danielwertheim/GeographyFactory

et un article de blog à ce sujet : http://danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position/

et un suivi sur le vrai "problème", la règle de la main gauche :

http:// danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position-no/