SQL Server 2008 geometry 資料類型

來源:互聯網
上載者:User

標籤:

原文:SQL Server 2008 geometry 資料類型

摘自SQL Server 2008協助

平面空間資料類型 geometry 是作為 SQL Server 中的公用語言進行時 (CLR) 資料類型實現的。此類型表示歐幾裡得(平面)座標系中的資料。

註冊 geometry 類型

geometry 類型已進行預定義,並可在每個資料庫中使用。您可以建立 geometry 類型的表列並對 geometry 資料進行操作,就像使用其他 CLR 類型一樣。

樣本

以下兩個樣本顯示了如何添加和查詢幾何資料。第一個樣本建立了帶有識別欄位和 geometryGeomCol1 的表。第三列將 geometry 列呈現為其開放地理空間聯盟 (OGC) 熟知文本 (WKT) 表示形式,並使用 STAsText() 方法。接下來將插入兩行:一行包含 geometry 類型的 LineString 執行個體,一行包含 Polygon 執行個體。

IF OBJECT_ID ( ‘dbo.SpatialTable‘, ‘U‘ ) IS NOT NULL     DROP TABLE dbo.SpatialTable;GOCREATE TABLE SpatialTable     ( id int IDENTITY (1,1),    GeomCol1 geometry,     GeomCol2 AS GeomCol1.STAsText() );GOINSERT INTO SpatialTable (GeomCol1)VALUES (geometry::STGeomFromText(‘LINESTRING (100 100, 20 180, 180 180)‘, 0));INSERT INTO SpatialTable (GeomCol1)VALUES (geometry::STGeomFromText(‘POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))‘, 0));GO

第二個樣本使用 STIntersection() 方法返回兩個以前插入的 geometry 執行個體相交的點。

DECLARE @geom1 geometry;DECLARE @geom2 geometry;DECLARE @result geometry;SELECT @geom1 = GeomCol1 FROM SpatialTable WHERE id = 1;SELECT @geom2 = GeomCol1 FROM SpatialTable WHERE id = 2;SELECT @result = @geom1.STIntersection(@geom2);SELECT @result.STAsText();
維度

非空 geometry 執行個體可以為零維、一維或二維。零維 geometries(例如 PointMultiPoint)沒有長度或面積。一維對象(例如 LineStringMultiLineString)具有長度。二維執行個體(例如 PolygonMultiPolygon)具有面積和長度。空執行個體將報告為 -1 維,並且GeometryCollection 將根據其內容類型報告一個面積。

“空”geometry 執行個體不包含任何點。空的 LineStringMultiLineString 執行個體的長度為零。空的 PolygonMultiPolygon 執行個體的面積為 0。

簡單

為了使執行個體的 geometry 變得“簡單”,必須符合以下全部兩個要求:

  • 執行個體的每個圖形不能與自身相交,但其終點除外。
  • 執行個體的任何兩個圖形可在某個點上相交,但兩個邊界上的點除外。
  • 邊界、內部和外部

    geometry 執行個體的“內部”是指由執行個體佔用的空間,而“外部”是指未佔用的空間。

    “邊界”由 OGC 定義,如下所示:

    • PointMultiPoint 執行個體沒有邊界。
    • LineStringMultiLineString 邊界由起始點和終點形成,並刪除那些出現次數為偶數的點。
    信封

    geometry 執行個體的“信封”又稱為“邊界框”,它是一個由執行個體的最小和最大座標 (X,Y) 形成的軸對齊矩形。

    閉合

    “閉合的”geometry 執行個體是指起始點和終點相同的圖形。Polygon 執行個體是閉合的。Point 執行個體不是閉合的。

    環是一個簡單、閉合的 LineString 執行個體。

    空間引用標識符 (SRID)

    空間引用標識符 (SRID) 是指定 geometry 執行個體所在的座標系的標識符。兩個擁有不同 SRID 的執行個體是不可比的。

     

     

    geometry 資料類型提供了許多內建方法,您可以使用這些方法基於現有執行個體建立新的 geometry 執行個體。

    geometry 資料類型提供了許多內建方法,您可以使用這些方法確定兩個 geometry 執行個體之間的關係。

    所有 geometry 執行個體都有很多可以通過 SQL Server 提供的方法進行檢索的屬性。下列主題定義了幾何圖形類型的屬性和行為,並為查詢每種圖形定義了方法。

    可通過以熟知文本(Well-Known Text,WKT)或熟知二進位(Well-Known Binary,WKB)格式輸入資料來構造 geometry 空間資料類型的執行個體。

     

    STGeomFromText(geometry 資料類型)

    從開放地理空間聯盟 (OGC) 熟知文本 (WKT) 表示形式返回 geometry 執行個體,增加了該執行個體傳遞的任何 Z(標高)和 M(度量)值。

    文法
    STGeomFromText ( ‘geometry_tagged_text‘ , SRID )
    參數

    geometry_tagged_text

    您希望返回的 geometry 執行個體的 WKT 表示形式。geometry_tagged_textnvarchar(max) 運算式。

    SRID

    一個 int 運算式,它表示您希望返回的 geometry 執行個體的空間引用 ID (SRID)。

    傳回型別

    SQL Server 傳回型別:geometry

    CLR 傳回型別:SqlGeometry

    備忘

    STGeomFromText() 返回的 geometry 執行個體的 OGC 類型設定為相應的 WKT 輸入。

    如果輸入格式不正確,此方法將引發 FormatException

    樣本

    下面的樣本使用 STGeomeFromText() 建立 geometry 執行個體。

    DECLARE @g geometry;SET @g = geometry::STGeomFromText(‘LINESTRING (100 100, 20 180, 180 180)‘, 0);SELECT @g.ToString();

    SQL Server 2008 geometry 資料類型

    相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.