在将一系列 Shapefile 引入 SQL Server 2008R2 之后,我们希望获取表格中一系列多边形的最小和最大点。
如果没有 SQL Server 2008R2 中的 STExtent 之类的聚合函数,如何确定最小值和最大值?
这篇博文指出了一系列选项:
http ://alastaira.wordpress.com/2011/07/26/determining-the-geographic-extent-of-spatial-features-in-a-sql-server-table/
- 选项#1:使用光标
- 选项 #2:CLR 函数
- 选项#3:CTE
- 选项#4:持久信封
一个例子:
BEGIN TRAN
CREATE TABLE #Lines
(
ID INT IDENTITY(1,1)
,Poly GEOMETRY NULL
);
INSERT INTO #Lines
(Poly)
VALUES
(geometry::STGeomFromText('LINESTRING(0 0, 2 3)', 0));
INSERT INTO #Lines
(Poly)
VALUES
(geometry::STGeomFromText('LINESTRING(1 1, 2 4)',0));
--How can i get the min and max x and y points?
--(e.g. for this example Xmin = 0, Xmax = 2, Ymin = 0, Ymax = 4)
DROP TABLE #Lines
COMMIT