Udostępnij za pośrednictwem


Wprowadzenie do geometrii typu danych

planarny dane przestrzenne typu, geometry, jest implementowana jako wspólne language runtime (CLR) typu danych w SQL Server.Ten typ reprezentuje dane w układzie współrzędnych (płaski) euklidesowa.

Rejestrowanie geometrię typu

geometry Typ jest wstępnie zdefiniowane i dostępne w każdej bazie danych.Można utworzyć tabela kolumn typu geometry i działają na geometry dane w taki sam sposób, jak można użyć innych typów CLR.

Przykłady

Następujące dwa przykłady zawierają sposobu dodawania i danych geometry kwerendy.Pierwszy przykład tworzy tabela z kolumna tożsamości i geometry kolumna GeomCol1.Trzecia kolumna renderuje geometry kolumny do reprezentacji Otwórz konsorcjum geograficzne (OGC) dobrze znanego tekstu (WKT) i zastosowań STAsText() metoda.Następnie dodaje się dwa wiersze: zawiera jeden wiersz LineString wystąpienie geometry, i jeden wiersz zawiera Polygon instancji.

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, aby przywrócić punkty, w którym wcześniej dodaje dwa geometry wystąpień przecinają.

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