Tôi có vài trăm hình dạng polygon
và multipolygon
mỗi hình bao gồm hàng chục nghìn điểm mà tôi đang cố gắng truy cập vào SQL 2008.
Thật không may, các hình dạng mà tôi đã cố gắng nhập là "thuận tay phải" (chu vi của mỗi hình được vẽ theo chiều kim đồng hồ xung quanh các điểm mà nó chứa). Máy chủ SQL giả định hình dạng "thuận tay trái" (ngược chiều kim đồng hồ xung quanh bên trong), ít nhất là cho geography
các loại. Điều này có nghĩa là SQL giả định rằng tôi đang cố gắng chọn toàn bộ trái đất ngoại trừ hình dạng của tôi. Một số người mô tả đây là hình dạng "từ trong ra ngoài".
Từ MSDN , một cách bực bội không nói nên sử dụng định hướng vòng nào:
Nếu chúng ta sử dụng
geography
kiểu dữ liệu để lưu trữ thể hiện không gian, chúng ta phải chỉ định hướng của vòng và mô tả chính xác vị trí của thể hiện.
Nếu bạn sử dụng hướng vòng sai trong SQL 2008, nó sẽ gặp lỗi sau (nhấn mạnh vào tôi):
Đã xảy ra lỗi .NET Framework trong khi thực hiện quy trình do người dùng xác định hoặc tổng hợp "địa lý": Microsoft.SqlServer.Types.GLArgumentException: 24205: Đầu vào được chỉ định không đại diện cho một trường hợp địa lý hợp lệ vì nó vượt quá một bán cầu duy nhất. Mỗi trường hợp địa lý phải phù hợp bên trong một bán cầu. Một lý do phổ biến cho lỗi này là một đa giác có hướng vòng sai.
Nhập các hình dạng geometry
thay vì geography
hoạt động tốt, nhưng tôi muốn sử dụng geography
nếu có thể.
Trong SQL 2012, nó có vẻ khá tầm thường để khắc phục vấn đề này, nhưng tôi bị ràng buộc với năm 2008.
Làm thế nào tôi nên chuyển đổi các hình dạng?