sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server 2012, geografía.STContains, ¿resultado incorrecto?

Ahora encontré el problema. El usuario dibujó el polígono comenzando por la parte inferior derecha y siguió en el sentido de las agujas del reloj. Si reordeno los puntos desde la latitud más grande y luego hago lo contrario clasificando en long, lat, funciona. Encontré un ayudante para eso, pero eso solo funciona si "sabes que está mal":

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

Simplemente cree una pequeña solución que corrija mis valores:https://github.com/danielwertheim/GeographyFactory

y una publicación de blog al respecto: http://danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position/

y un seguimiento sobre el "problema" real, la regla de la mano izquierda:

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