Anda dapat memeriksa, apakah hasil dari EnvelopeAngle()
metode untuk geografi adalah 180, lalu gunakan ReorientObject()
berfungsi untuk memperbaikinya.
Ini contohnya:
--A CW polygon
DECLARE @G3 GEOGRAPHY = 'POLYGON ((45 45, 44 45, 44 46, 45 46, 45 45))';
SELECT @G3.EnvelopeAngle(); --180
SELECT @G3.ReorientObject().STAsText(); --POLYGON ((44 46, 44 45, 45 45, 45 46, 44 46))
EDIT seperti yang dinyatakan dalam komentar, Anda dapat memperbaiki geometri saat ini, menggunakan perintah pembaruan sederhana (jika Anda yakin itu tidak benar):
UPDATE foo_table SET bar_column = bar_column.ReorientObject()
WHERE bar_column.EnvelopeAngle() > 90