Сега открих проблема. Потребителят начерта полигона, започващ долу вдясно и тръгнал по посока на часовниковата стрелка. Ако пренаредя точките от най-голямата географска ширина и след това отида в обратна посока, като сортирам по long, lat работи. Намерих помощник за това, но това работи само ако „знаете, че не е наред“:
if(sqlGeography.EnvelopeAngle() > 90)
sqlGeography ? sqlGeography.ReorientObject();
Просто съставете малко решение, което ще коригира моите стойности:https://github.com/danielwertheim/GeographyFactory
и публикация в блог за това: http://danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position/
и последващи действия относно истинския „проблем“, правилото на лявата ръка:
http:// danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position-no/