Bạn có thể kiểm tra xem kết quả của EnvelopeAngle()
cho địa lý là 180, sau đó sử dụng ReorientObject()
chức năng để sửa nó.
Đây là mẫu:
--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))
CHỈNH SỬA như đã nêu trong các nhận xét, bạn có thể sửa các hình dạng hiện tại bằng cách sử dụng lệnh cập nhật đơn giản (trong trường hợp bạn chắc chắn rằng chúng không đúng):
UPDATE foo_table SET bar_column = bar_column.ReorientObject()
WHERE bar_column.EnvelopeAngle() > 90