Freigeben über


geography (Transact-SQL)

Der Räumlichkeitsdatentyp geography wird als .NET-CLR (Common Language Runtime)-Datentyp in SQL Server implementiert. Dieser Typ stellt Daten in einem Erdkugel-Koordinatensystem dar. Der geography-Datentyp in SQL Server speichert ellipsenförmige (Erdkugel-)Daten, wie z. B. GPS-Breiten- und Längenkoordinaten.

SQL Server unterstützt einen Satz von Methoden für den räumlichen geography-Datentyp. Dazu gehören Methoden für geography, die im OGC-Standard (Open Geospatial Consortium) sowie in einer Gruppe von Microsoft-Erweiterungen dieses Standards definiert sind.

Weitere Informationen zu Methoden für den räumlichen geography-Datentyp finden Sie in der geography-Datentyp-Methodenverweis.

Registrieren des geography-Datentyps

Der geography-Typ ist vordefiniert und in jeder Datenbank verfügbar. Sie können Tabellenspalten des geography-Typs in der gleichen Weise erstellen und geography-Daten in der gleichen Weise verwenden wie andere vom System bereitgestellte Typen. Kann in permanenten und nicht permanenten berechneten Spalten verwendet werden.

Beispiele

A.Darstellung des Hinzufügens und Abfragens von Geografiedaten

Die folgenden Beispiele zeigen, wie Geografiedaten hinzugefügt und abgefragt werden. Im ersten Beispiel wird eine Tabelle mit einer Identitätsspalte und der geography-Spalte GeogCol1 erstellt. Eine dritte Spalte rendert die geography-Spalte als Darstellung im Open Geospatial Consortium (OGC) WKT-Format und verwendet die STAsText()-Methode. Dann werden zwei Zeilen eingefügt: Eine Zeile enthält eine LineString-Instanz des Typs geography und die andere eine Polygon-Instanz.

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

B.Zurückgeben der Schnittmenge von zwei geography-Instanzen

Im folgenden Beispiel werden mithilfe der STIntersection()-Methode die Punkte zurückgegeben, an denen die beiden zuvor eingegebenen geography-Instanzen sich schneiden.

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

C.Verwenden des geography-Typs in einer berechneten Spalte

Im folgenden Beispiel wird eine Tabelle mit einer permanenten berechneten Spalte mit einem geography-Typ erstellt.

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

CREATE TABLE SpatialTable
(
    locationId int IDENTITY(1,1),
    location geography,
    deliveryArea as location.STBuffer(10) persisted
)

Siehe auch

Konzepte

Räumliche Daten (SQL Server)

Andere Ressourcen

geography-Datentyp-Methodenverweis