Udostępnij za pośrednictwem


Wprowadzenie Geografia, typ danych

Geografia dane przestrzenne typu, geography, jest zaimplementowany jako.Wpisz netto wspólnych language runtime (CLR) danych w SQL Server.Ten typ reprezentuje dane w układzie współrzędnych round ziemi.The SQL Server geography data type stores ellipsoidal (round-earth) data, such as GPS latitude and longitude coordinates.

Rejestrowanie Geografia typu

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

Przykłady

Następujące przykłady przedstawiają sposób dodawania i danych Geografia kwerendy.Pierwszy przykład tworzy tabela z kolumna tożsamości i geography kolumna GeogCol1.Trzecia kolumna renderuje geography 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 geography, 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),
    GeogCol1 geography, 
    GeogCol2 AS GeogCol1.STAsText() );
GO

INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326));

INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326));
GO

W drugim przykładzie użyto STIntersection() metoda, aby przywrócić punkty, w którym wcześniej dodaje dwa geography wystąpień przecinają.

DECLARE @geog1 geography;
DECLARE @geog2 geography;
DECLARE @result geography;

SELECT @geog1 = GeogCol1 FROM SpatialTable WHERE id = 1;
SELECT @geog2 = GeogCol1 FROM SpatialTable WHERE id = 2;
SELECT @result = @geog1.STIntersection(@geog2);
SELECT @result.STAsText();