Was ist der Speichertyp "ST_Geometry"?
Der Datentyp "ST_Geometry" ist ein benutzerdefinierter Datentyp, der es Ihnen ermöglicht, Spalten zu definieren, die räumliche Daten speichern.
"ST_Geometry" selbst ist eine abstrakte, nicht instanziierte übergeordnete Objektklasse. Ihre Subclasses können jedoch instanziiert sein. Bei einem instanziierten Datentyp handelt es sich um einen Datentyp, der als Tabellenspalte definiert werden kann und darin eingefügte Werte seines Typs aufweisen kann.
Eine Spalte kann zwar als Typ "ST_Geometry" definiert werden, es werden jedoch keine ST_Geometry-Werte in die Spalte eingefügt, da sie nicht instanziiert werden kann. Stattdessen werden die Subclass-Werte eingefügt.
Im folgenden Diagramm wird die Hierarchie des Datentyps "ST_Geometry-Datentyps" und seiner Subclasses veranschaulicht.
Subclasses
Die Subclasses von "ST_Geometry" sind in zwei Kategorien unterteilt: die Subclasses der Basisgeometrie und die Subclasses der homogenen Sammlung. Die Basisgeometrien umfassen "ST_Point", "ST_LineString" und "ST_Polygon", während die homogenen Sammlungen "ST_MultiPoint", "ST_MultiLineString" und "ST_MultiPolygon" umfassen. Wie der Name schon besagt, handelt es sich bei den homogenen Sammlungen um Sammlungen der Basisgeometrien. Homogene Sammlungen weisen neben den mit der Basisgeometrie gemeinsamen Eigenschaften auch eigene Eigenschaften auf.
Jede Subclass speichert den durch ihren Namen implizierten Geometrietyp: "ST_MultiPoint" speichert beispielsweise Multipoints. In der folgenden Tabelle finden Sie eine Liste mit den Subclasses und die dazugehörigen Beschreibungen:
Subtype |
Beschreibung |
---|---|
ST_Point |
|
ST_LineString |
|
ST_Polygon |
|
ST_MultiPoint |
|
ST_MultiLineString |
|
ST_MultiPolygon |
|
Beachten Sie, dass jede Subclass die Eigenschaften der übergeordneten Objektklasse "ST_Geometry" erbt, aber auch über eigene Eigenschaften verfügt. Bei Funktionen, die für den Datentyp "ST_Geometry" verwendet werden können, sind alle Subclass-Entitätstypen zulässig. Einige Funktionen wurden jedoch auf Subclass-Ebene definiert und nehmen nur bestimmte Subclasses an. Die Funktion "ST_GeometryN" akzeptiert beispielsweise nur die Subtype-Werte "ST_MultiLinestring", "ST_MultiPoint" oder "ST_MultiPolygon" als Eingabe.
Um die Subclass einer "ST_Geometry" zu ermitteln, können Sie die Funktion "ST_GeometryType" verwenden. Die Funktion "ST_GeometryType" gibt für eine "ST_Geometry" die instanziierte Subclass in der Form einer Zeichenfolge zurück. Um zu ermitteln, wie viele Basisgeometrieelemente in einer homogenen Sammlung enthalten sind, können Sie die Funktion "ST_NumGeometries" verwenden, die eine homogene Sammlung annimmt und die Anzahl der enthaltenen Basisgeometrieelemente zurückgibt.