Можете да проверите дали резултатът от EnvelopeAngle()
методът за география беше 180, след което използвайте ReorientObject()
функция, за да го коригирате.
Ето примера:
--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))
РЕДАКТИРАНЕ както е посочено в коментарите, можете да коригирате текущите геометрии, като използвате проста команда за актуализиране (в случай, че сте сигурни, че не са правилни):
UPDATE foo_table SET bar_column = bar_column.ReorientObject()
WHERE bar_column.EnvelopeAngle() > 90