So korrigieren Sie die Polygonringorientierung mit räumlichen C # -Entity Framework 5-DbGeography-Daten

Ich arbeite mit dem neuen Entity-Framework 5 und verwende den räumlichen Datentyp DbGeography als Teil meines Modells, um in einer Instanz einen POINT und in einer anderen Instanz einen POLYGON zu speichern.

Wenn ich den Wert meines POLYGON einstelle, wird alles fehlerfrei gespeichert. Dies ist jedoch nur der Fall, wenn ich das Polygon im Uhrzeigersinn auf die Karte ziehe. Wenn ich den POLGON gegen den Uhrzeigersinn zeichne, erhalte ich eine Fehlermeldung auf der SQL-Ebene, die angibt, dass die Daten ein ungültiger Geografietyp sind.

Nachdem ich mich nun selbst mit dem Problem befasst habe, scheint es darauf zurückzuführen zu sein, dass der Datentyp "Geographie" in Bezug auf die Ausrichtung des Polygonrings recht streng ist. Die häufigste Lösung besteht darin, das Polygon als Geometrie zu erstellen und anschließend in einen geografischen Typ zu konvertieren.

Ich suche nach einer Lösung in C #, die auf die Daten angewendet werden kann, bevor sie an SQL gesendet werden. Grundsätzlich wird die Ringausrichtung eines Koordinatenfeldes automatisch korrigiert.

Ich habe versucht, den Fehler abzufangen und dann die Zeichenfolge durch Umkehren des Arrays neu zu erstellen. Dies funktioniert in einigen Fällen, ist aber erstens nicht zuverlässig und zweitens ist das Auffangen des Fehlers ein zu großer Leistungseinbruch.

Danke Chris

Antworten auf die Frage(3)

Ihre Antwort auf die Frage