Trong SQL Server của tôi (2008 R2) trên Azure, có một bảng chứa rất nhiều địa lý Points
(vĩ độ/kinh độ):Tạo hình đa giác địa lý từ điểm trong T-SQL
CREATE TABLE MyPoints
(
Region uniqueidentifier NOT NULL,
Number int NOT NULL,
Position geography NOT NULL,
CONSTRAINT PK_MyPoints PRIMARY KEY(Region, Number)
)
Bây giờ tôi muốn tạo a Polygon
từ điểm này để xác định, cửa hàng nào của tôi nằm trong khu vực được xác định bởi các điểm.
Có cách nào nhanh và bản địa để xây dựng đa giác từ các điểm đã cho trong T-SQL không? The solutions I found đang sử dụng các phương pháp STGeomFromText
/STGeomFomWKB
để tạo đa giác, có vẻ rất cồng kềnh và chậm đối với tôi.
Cái gì như:
SET @POLY = geometry::STPolyFromPoints(SELECT Position FROM MyPoints)
Chúng tôi đang sử dụng một chức năng liên kết các điểm trong biểu diễn nhị phân của chúng và gọi 'STGeomFromWKB' trên chuỗi đó. Nó đủ nhanh cho mục đích của chúng tôi, nhưng nó vẫn xấu xí. – Gene
Một gợi ý khác sẽ là viết hàm .NET CLR do người dùng định nghĩa của bạn mà lấy tham số bảng (cột của các điểm Geo thực tế) và trả về một hình học. Tôi đã không làm việc với nó được nêu ra, nhưng SqlGeometryBuilder trông đầy hứa hẹn: http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.types.sqlgeometrybuilder.aspx –
AFAIK không có hỗ trợ cho các chức năng CLR trên SQL Azure. Tôi cũng nghĩ về khả năng đó. – Gene