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/