Erstellen, Aufbauen und Abfragen von geography-Instanzen

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

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.

In diesem Thema

  • Erstellen einer neuen geography-Instanz

    • Erstellen einer neuen geography-Instanz anhand einer vorhandenen Instanz

    • Erstellen einer geography-Instanz anhand einer WKT-Eingabe (Well-Known Text)

    • Erstellen einer geography-Instanz aus einer WKB-Eingabe (Well-Known Binary)

    • Erstellen einer geography-Instanz anhand einer GML-Texteingabe

  • Zurückgeben von WKT (Well-Known Text) oder WKB (Well-Known Binary) von einer geography-Instanz

  • Abfragen von Eigenschaften und Verhalten von geography-Instanzen

    • Gültigkeit, Instanztyp und GeometryCollection-Informationen

    • Anzahl von Punkten

    • Dimension

    • Leer

    • Abgeschlossenheit

    • SRID (Spatial Reference ID)

  • Bestimmen von Beziehungen zwischen geography-Instanzen

  • geography-Instanzen müssen unterstützte SRIDs verwenden

  • Beispiele

[NACH OBEN]

Erstellen einer neuen geography-Instanz

Erstellen einer neuen geography-Instanz anhand einer vorhandenen Instanz

Der geography-Datentyp stellt viele integrierte Methoden zur Verfügung, mit denen neue geography-Instanzen auf Grundlage vorhandener Instanzen erstellt werden können.

Erstellen einer geography-Instanz anhand einer WKT-Eingabe (Well-Known Text)

Der geography-Datentyp bietet mehrere integrierte Methoden zur Erstellung einer Geografie anhand der WKT-Darstellung des Open Geospatial Consortium (OGC). Der WKT-Standard ist eine Textzeichenfolge, die den Austausch von Geografiedaten in Textform ermöglicht.

Erstellen einer geography-Instanz aus einer WKB-Eingabe (Well-Known Binary)

WKB ist ein vom OGC spezifiziertes Binärformat, das den Austausch von Geography-Daten zwischen einer Clientanwendung und einer SQL-Datenbank ermöglicht. Die folgenden Funktionen akzeptieren die WKB-Eingabe zum Zweck der Erstellung von geography-Instanzen:

Erstellen einer geography-Instanz anhand einer GML-Texteingabe

Der geography-Datentyp stellt eine Methode zum Erstellen von geography-Instanzen anhand von GML bereit, einer XML-Darstellung einer geography-Instanz. SQL Server unterstützt eine Teilmenge von GML.

Weitere Informationen über Geography Markup Language finden Sie in der OGC-Spezifikation: OGC Specifications, Geography Markup Language.

Zurückgeben von WKT (Well-Known Text) oder WKB (Well-Known Binary) von einer geography-Instanz

Anhand der folgenden Methoden können Sie entweder das WKT- oder das WKB-Format einer geography-Instanz zurückgeben:

Abfragen von Eigenschaften und Verhalten von geography-Instanzen

Alle geography-Instanzen verfügen über eine Reihe von Eigenschaften, die mit von SQL Server bereitgestellten Methoden abgerufen werden können. In den folgenden Themen werden die Eigenschaften und Verhalten von geography-Typen und die Methoden zum Abrufen der einzelnen Eigenschaften und Verhalten beschrieben.

Gültigkeit, Instanztyp und GeometryCollection-Informationen

Nachdem eine geography-Instanz erstellt wurde, können Sie anhand der folgenden Methoden den Instanztyp zurückgeben. Wenn es sich um eine GeometryCollection-Instanz handelt, können Sie eine bestimmte geography-Instanz zurückgeben.

Anzahl von Punkten

Alle nicht leeren geography-Instanzen bestehen aus Punkten. Diese Punkte stellen den Längengrad und den Breitengrad der Erde dar, auf die die geography-Instanzen gezeichnet werden. Der Datentyp geography stellt zahlreiche integrierte Methoden bereit zum Abfragen der Punkte einer Instanz.

Dimension

Eine nicht leere geography-Instanz kann null-, ein- oder zweidimensional sein. Nulldimensionale geography -Instanzen, z. B. Point und MultiPoint, verfügen weder über eine Länge noch über eine Fläche. Eindimensionale Objekte (z. B. LineString, CircularString, CompoundCurve und MultiLineString) weisen eine Länge auf. Zweidimensionale Instanzen (z. B. Polygon, CurvePolygon und MultiPolygon) weisen eine Fläche und eine Länge auf. Für leere Instanzen wird als Dimension -1 ausgegeben, und für eine GeometryCollection-Auflistung wird die maximale Dimension der darin enthaltenen Elemente zurückgegeben.

Leer

Eine leere geography-Instanz besitzt keine Punkte. Die Länge von leeren LineString, CircularString-, CompoundCurve- und MultiLineString-Instanzen ist 0 (null). Die Fläche von leeren Polygon, CurvePolygon- und MultiPolygon-Instanzen ist 0 (null).

Abgeschlossenheit

Eine geschlossene geography-Instanz ist eine Abbildung, deren Ausgangs- und Endpunkte identisch sind. Alle Polygon-Instanzen gelten als geschlossen. Alle Point-Instanzen gelten als nicht geschlossen.

Ein Ring ist eine einfache, geschlossene LineString-Instanz.

SRID (Spatial Reference ID)

Der SRID (Spatial Reference ID) ist ein Bezeichner, der das ellipsenförmige Koordinatensystem angibt, in dem die geography-Instanz dargestellt wird. Zwei geography-Instanzen mit unterschiedlichen SRIDs können nicht verglichen werden.

Diese Eigenschaft kann geändert werden.

Bestimmen von Beziehungen zwischen geography-Instanzen

Der geography-Datentyp stellt viele integrierte Methoden zur Verfügung, mit denen die Beziehungen zwischen zwei geography-Instanzen bestimmt werden können.

geography-Instanzen müssen unterstützte SRIDs verwenden

SQL Server unterstützt SRIDs auf der Grundlage der EPSG-Standards. Wenn Berechnungen mit geografischen räumlichen Daten ausgeführt werden oder Methoden mit geografischen räumlichen Daten verwendet werden, müssen von SQL Server unterstützte SRIDs für geography-Instanzen verwendet werden. Der SRID muss mit einem der SRIDs übereinstimmen, die in der sys.spatial_reference_systems-Katalogsicht angezeigt werden. Wie bereits erwähnt, hängen die Ergebnisse von Berechnungen mit räumlichen Daten unter Verwendung des geography-Datentyps von der Ellipsenform ab, die zur Erstellung der Daten verwendet wurde, da jeder Ellipsenform ein bestimmter SRID zugeordnet wird.

In SQL Server wird beim Einsatz von Methoden für geography-Instanzen standardmäßig der SRID 4326 verwendet, der dem räumlichen Referenzsystem WGS 84 zugeordnet ist. Wenn Sie Daten aus einem anderen räumlichen Referenzsystem als WGS 84 (bzw. SRID 4326) verwenden, müssen Sie die SRID dieser geografischen räumlichen Daten bestimmen.

Beispiele

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
    
  • Im zweiten 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();
    

Siehe auch

Konzepte

Räumliche Daten (SQL Server)