在SQL2008中增加了對地理空間數據類型的支持,該類型分為2種:歐氏(平面)幾何geometry 和地理 空間(橢圓體)幾何geography 。歐式幾何大家基本上都學過,是以坐標來表示,而地理空間就是使用經 度和緯度來表示,由於平面幾何比較簡單(我記得好像是初中時候學的平面解析幾何,高中學立體解析幾 何),所以我就從簡單的學起,先學習geometry 數據類型。
在平面幾何中我們有3個基本元素:點、線、面。對應的在geometry 數據類型中也是這3種類型Point 、LineString、Polygon以及各自的集合MultiPoint、MultiLineString、MultiPolygon 另外還有一個它 們的混合的集合GeometryCollection,混合集合中可以包含多個Point多個LineString和多個Polygon。很 容易看出MultiPoint、MultiLineString、MultiPolygon是GeometryCollection的一種特殊情況。官方給 出的它們的關系如圖:
當需要申明一個geometry 對象時需要使用它提供的一個函數STGeomFromText將字符串形式的申明轉換 為對象。例如要申明一個Point,坐標為1,2 對應的SQL語句就是:
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT (1 2)', 0);
SELECT @g.ToString();
這裡Point除了接受x y這2個參數外,還可以接受Z(仰角elevation)和 M(度量measure)值,在平 面幾何中好像沒有這個概念啊?不知道是拿來做什麼用的,估計是在地理數據類型中才會使用吧。
除字符串之外,STGeomFromText還有一個參數就是SRID。SRID是空間引用標識符的簡稱,主要用於地 理數據類型,在平面幾何數據類型中SRID默認是0,關於SRID的具體作用在地理數據類型的時候再研究, 只需要知道,不同SRID的2個實例是不能進行運算的,運算的結果都是NULL。