Udostępnij przez


Getting Started with the geometry Data Type

płaski dane przestrzenne typ, geometry, jest implementowane jako wspólne typ danych (CLR) środowiska wykonawczego języka w SQL Server. Ten typ reprezentuje dane Euclidean układu współrzędnych (płaski).

Rejestrowanie geometrii typ

The geometry type is predefined and available in each database.Można utworzyć typu kolumny w tabela geometry i działają na geometry dane w taki sam sposób, jak można użyć innego typu CLR.

Przykłady

Następujące dwa przykłady pokazują sposób dodawania oraz danych geometrii kwerendy.W pierwszym przykładzie utworzona zostanie tabela z kolumną identyfikacji i geometry kolumna GeomCol1. Trzecia kolumna renderuje geometry kolumny do jej reprezentacji OGC (Otwieranie lokalizacji geograficznych Consortium) Well-Known tekstu (WKT) i zastosowań STAsText() Metoda. Następnie dodaje dwa wiersze: zawiera jeden wierszLineString wystąpienie geometry, a zawiera jeden wiersz Polygon wystąpienie.

IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL 
    DROP TABLE dbo.SpatialTable;
GO

CREATE TABLE SpatialTable 
    ( id int IDENTITY (1,1),
    GeomCol1 geometry, 
    GeomCol2 AS GeomCol1.STAsText() );
GO

INSERT 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

W drugim przykładzie użyto STIntersection() Metoda zwraca punkty, w której dwie wcześniej umieszczone geometry część wspólna wystąpień.

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();