Jetzt habe ich das Problem gefunden. Der Benutzer zeichnete das Polygon beginnend unten rechts und ging im Uhrzeigersinn. Wenn ich die Punkte vom größten Breitengrad neu anordne und dann gegenläufig vorgehe, indem ich nach langem Breitengrad sortiere, funktioniert es. Habe einen Helfer dafür gefunden, aber das funktioniert nur, wenn man "weiß, dass es falsch ist":
if(sqlGeography.EnvelopeAngle() > 90)
sqlGeography ? sqlGeography.ReorientObject();
Einfach eine kleine Lösung zusammenstellen, die meine Werte fixieren wird:https://github.com/danielwertheim/GeographyFactory
und ein Blogpost darüber: http://danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position/
und ein Follow-up über das eigentliche "Problem", die Regel der linken Hand:
http:// danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position-no/