Konstruktorfunktionen erstellen eine Geometrie anhand einer bekannten Textbeschreibung oder mit einem anderen Datenformat, wie beispielsweise bekannte Binärdateien oder Shapefiles.
Wenn Sie zum Konstruieren einer Geometrie eine bekannte Textbeschreibung bereitstellen, muss die Messkoordinate zuletzt angegeben werden. Wenn der Text beispielsweise Koordinaten für Y, Y, Z und M enthält, müssen sie in dieser Reihenfolge, nicht etwa in der Reihenfolge X, Y, M, Z, angegeben werden.
Eine Geometrie kann null oder mehr Punkte aufweisen. Eine Geometrie gilt als leer, wenn sie null Punkte enthält. Der Subtype "Point" ist die einzige Geometrie, die auf null oder einen Punkt beschränkt ist. Alle anderen Subtypes können null oder mehr Punkte besitzen.
In den folgenden Abschnitten werden die übergeordnete Objektklasse der Geometrie und die Subclass-Geometrien beschrieben. Außerdem werden die Funktionen aufgeführt, die jeweils erstellt werden können.
Die übergeordnete Objektklasse der Geometrie
Die übergeordnete Objektklasse "ST_Geometry" kann nicht instanziiert werden. Auch wenn Sie eine Spalte als Datentyp "ST_Geometry" festlegen können, werden die tatsächlich eingefügten Daten als Punkt-, Linestring-, Polygon-, Multipoint-, Multilinestring- oder Multipolygon-Entitäten festgelegt.
Die folgenden Funktionen können zum Erstellen einer übergeordneten Objektklasse verwendet werden, um die oben genannten Entitätstypen zu speichern.
- ST_Geometry
- ST_GeomFromText (nur Oracle und SQLite)
- ST_GeomFromWKB
Subclasses
Sie können ein Feature als bestimmte Subclass festlegen. In diesem Fall kann nur der für diese Subclass zulässige Entitätstyp eingefügt werden. Beispielsweise können mit "ST_PointFromWKB" nur Punktentitäten erstellt werden.
ST_Point
Ein "ST_Point" ist eine nulldimensionale Geometrie, die eine einzelne Position in einem Koordinatenbereich einnimmt. Ein "ST_Point" besitzt einen einzigen XY-Koordinatenwert, ist immer eine einfache Geometrie und weist eine NULL-Grenze auf. "ST_Point" kann zum Definieren von Features wie Ölquellen, Landmarks und Sammelstellen für Wasserproben verwendet werden.
Mit den folgenden Funktionen kann ein Punkt erstellt werden:
- ST_Point
- ST_PointFromText (nur Oracle und SQLite)
- ST_PointFromWKB
ST_MultiPoint
Ein "ST_Multipoint" ist eine Sammlung von "ST_Points" und besitzt wie seine Elemente die Dimension 0. Ein "ST_MultiPoint" ist einfach, wenn keines seiner Elemente den gleichen Koordinatenbereich einnimmt. Die Grenze eines "ST_MultiPoint" beträgt NULL. "ST_MultiPoints" können Dinge wie Übertragungsmuster und Orte von Krankheitsausbrüchen definieren.
Mit den folgenden Funktionen kann eine Multipoint-Geometrie erstellt werden:
- ST_MultiPoint
- ST_MPointFromText (nur Oracle)
- ST_MPointFromWKB
ST_LineString
Ein "ST_LineString" ist ein eindimensionales Objekt, das als Abfolge von Punkten gespeichert ist und einen linear interpolierten Pfad definiert. Der "ST_LineString" besitzt eine einfache Geometrie, wenn er seinen Innenbereich nicht schneidet. Die Endpunkte (Grenze) eines geschlossenen "ST_LineString" nehmen denselben Punkt im Raum ein. Ein "ST_LineString" ist ein Ring, wenn er geschlossen ist und eine einfache Geometrie aufweist. Wie die anderen Eigenschaften, die von der übergeordneten Objektklasse "ST_Geometry" übernommen werden, besitzen "ST_LineStrings" eine Länge. Mit "ST_LineStrings" werden häufig lineare Features wie Straßen, Flüsse und Stromleitungen definiert.
Die Endpunkte bilden im Normalfall die Grenze eines "ST_LineString". Wenn der "ST_LineString" geschlossen ist, ist die Grenze jedoch NULL. Der Innenbereich eines "ST_LineString" ist der verbundene Pfad, der zwischen den Endpunkten liegt. Wenn er geschlossen ist, gibt es einen durchgehenden Innenbereich.
Mit den folgenden Funktionen können Linestrings erstellt werden:
- ST_LineString
- ST_LineString (nur Oracle und SQLite)
- ST_LineFromWKB
- ST_Curve (nur Oracle und SQLite)
ST_MultiLineString
Ein ST_MultiLineString ist eine Sammlung von ST_LineStrings.
Die Grenze eines "ST_MultiLineString" bilden die Endpunkte der "ST_LineString"-Elemente, die nicht geschnitten werden. Die Grenze eines "ST_MultiLineString" ist NULL, wenn alle Endpunkte aller Elemente geschnitten werden. Zusätzlich zu den anderen Eigenschaften, die von der übergeordneten Objektklasse "ST_Geometry" übernommen werden, besitzen "ST_MultiLineStrings" eine Länge. Mit "ST_MultiLineStrings" werden nicht zusammenhängende lineare Features wie Flüsse oder Straßennetze definiert.
Mit den folgenden Funktionen können Multilinestrings erstellt werden:
- ST_MultiLineString
- ST_MLineFromText (nur Oracle und SQLite)
- ST_MLineFromWKB
- ST_MultiCurve (nur Oracle)
ST_Polygon
Ein ST_Polygon ist eine zweidimensionale Oberfläche, die als Abfolge von Punkten gespeichert ist und den umfassenden äußeren Ring sowie 0 oder mehr innere Ringe definiert. "ST_Polygons" besitzen stets eine einfache Geometrie. "ST_Polygons" definieren Features mit einer räumlichen Ausdehnung wie Flurstücke, Gewässer und Gerichtsbezirke.
In der folgenden Grafik sind Beispiele von "ST_Polygon"-Objekten zu sehen: (1) ist ein "ST_Polygon", dessen Grenze durch einen äußerer Ring definiert ist. (2) ist ein "ST_Polygon", dessen Grenze durch einen äußeren Ring und zwei innere Ringe definiert ist. Die Fläche innerhalb der inneren Ringe ist Teil des "ST_Polygon"-Außenbereichs. (3) ist ein zulässiges "ST_Polygon", weil sich die Ringe an einem einzelnen Tangentenpunkt schneiden.
Der äußere und alle inneren Ringe definieren die Grenze eines "ST_Polygon". Der Raum, der zwischen den Ringen eingeschlossen ist, definiert den Innenbereich des "ST_Polygon". Die Ringe eines "ST_Polygon" dürfen sich an einem Tangentenpunkt schneiden, jedoch nicht kreuzen. Zusätzlich zu den anderen Eigenschaften, die von der übergeordneten Objektklasse "ST_Geometry" übernommen werden, besitzen "ST_Polygons" eine Fläche.
Mit den folgenden Funktionen können Polygone erstellt werden:
- ST_Polygon
- ST_PolyFromText (nur Oracle und SQLite)
- ST_PolyFromWKB
- ST_Surface (nur Oracle und SQLite)
ST_MultiPolygon
Die Grenze eines ST_MultiPolygon ist die kumulative Länge der äußeren und inneren Ringe seiner Elemente. Der Innenbereich eines "ST_MultiPolygon" ist als die kumulativen Innenbereiche der zugehörigen "ST_Polygon"-Elemente definiert. Die Grenzen der Elemente eines "ST_MultiPolygon" dürfen sich nur an einem Tangentenpunkt schneiden. Zusätzlich zu den anderen Eigenschaften, die von der übergeordneten Objektklasse "ST_Geometry" übernommen werden, besitzen "ST_MultiPolygons" eine Fläche. Mit "ST_MultiPolygons" werden Features wie Waldstrata und nicht durchgängige Flurstücke (z. B. Inselketten im Pazifik) definiert.
Die folgende Grafik zeigt Beispiele von "ST_MultiPolygons": (1) ist ein "ST_MultiPolygon" mit zwei "ST_Polygon"-Elementen. Die Grenze wird durch die zwei äußeren Ringe und die drei inneren Ringe definiert. (2) ist ein "ST_MultiPolygon" mit zwei "ST_Polygon"-Elementen. Die Grenze wird durch die zwei äußeren Ringe und die zwei inneren Ringe definiert. Die zwei "ST_Polygon"-Elemente schneiden sich an einem Tangentenpunkt.
Mit den folgenden Funktionen können Multipolygone erstellt werden:
- ST_MultiPolygon
- ST_MPolyFromText (nur Oracle und SQLite)
- ST_MPolyFromWKB
- ST_MultiSurface (nur Oracle)