Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
SQL-Datenbank in Microsoft Fabric
Der Räumlichkeitsdatentyp geography wird in SQL Server als .NET-CLR-Datentyp (Common Language Runtime) implementiert. Dieser Typ stellt Daten in einem Erdkugel-Koordinatensystem dar. Der -Datentyp SQL Server geography speichert elliptische Daten (Globusmodell) wie GPS-Koordinaten in Längen- und Breitengraden.
Note
In der Fabric SQL-Datenbank dürfen Spalten mit räumlichen Typen verwendet werden, werden jedoch nicht in Fabric OneLake gespiegelt.
SQL Server unterstützt eine Reihe 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.
Die Fehlertoleranz für die geography-Methoden kann bis zu 1,0e-7 * Erweiterungen groß sein. Die Ausdehnungen beziehen sich auf den ungefähren maximalen Abstand zwischen Punkten des geografieobjekts .
Registrieren Sie den geografischen Typ
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. Der Typ kann sowohl in persistierten als auch in nicht gespeicherten berechneten Spalten verwendet werden.
Umwandlung
Die Umwandlung von Geographie zu binär,varbinär, char, varchar, nchar und nvarchar muss explizit sein. Verwenden Sie CAST oder CONVERT.
Die Umwandlung von binär,varbinär, char, varchar, nchar und nvarchar zu Geographie kann implizit oder explizit sein.
Die Umwandlung zwischen Geographie und allen anderen Datentypen ist nicht erlaubt. Dazu gehört auch die Umrechnung zwischen Geographie und Geometrie. Um Daten zwischen diesen beiden Typen zu verschieben, verwenden Sie die Methoden Well-Known Binary (WKB) oder Well-Known Text (WKT), zum Beispiel STAsBinary() mit STGeomFromWKB().
Die Umwandlung von einem Zeichenkettentyp in die Geografie verwendet die gleichen Regeln wie geography::Parse(). Der String muss Well-Known Text sein. Die SRID des Ergebnisses beträgt 4326.
Die Umwandlung zwischen Geographie und Binärform oder Varbinär verwendet das SQL Server native Serialisierungsformat der Geographie, nicht Well-Known Binär. Ein Well-Known Binärwert verursacht einen Fehler. Um in oder von Well-Known Binärcode umzuwandeln, verwenden STAsBinary() Sie und STGeomFromWKB().
Wenn die Zielzeichenkette oder der Binärtyp für den geografischen Wert zu kurz ist, tritt ein Fehler auf. Der Wert wird nicht verkürzt.
Remarks
In SQL-Datenbanken in Microsoft Fabric werden Geografie- und Geometrie-Datentypen unterstützt, können aber nicht auf das Fabric OneLake gespiegelt werden.
Examples
A. Zeigen Sie, wie man geografische Daten addiert und abfragt
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 gibt die Spalte geography in ihrer Darstellung als Well-Known Text (WKT) des Open Geospatial Consortium (OGC) aus und verwendet die Methode STAsText(). Dann werden zwei Zeilen eingefügt: Eine Zeile enthält eine LineString -Instanz des Typs geographyund 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. Geben Sie die Schnittmenge zweier geografischer Instanzen zurück
Im folgenden Beispiel werden mithilfe der STIntersection()-Methode die Punkte zurückgegeben, an denen die beiden zuvor eingegebenen geography-Instanzen sich schneiden.
DECLARE @geog1 AS geography;
DECLARE @geog2 AS geography;
DECLARE @result AS 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 Sie Geografie in einer berechneten Spalte
Im folgenden Beispiel wird eine Tabelle mit einer persistierten 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
);