Räumliche Operationen verwenden Geometriefunktionen, um räumliche Daten als Eingabe zu verwenden, die Daten zu analysieren und dann die Ausgabedaten zu erzeugen, bei denen es sich um eine Ableitung der Analyse handelt, die für die Eingabedaten durchgeführt wurde.
Mit den folgenden Operationen können neue Daten aus den Eingabedaten erstellt werden.
Puffern von Geometrien
Die Funktion "ST_Buffer" generiert eine Geometrie durch Einkreisen einer Geometrie in einer bestimmten Entfernung. Wenn eine primäre Geometrie gepuffert wird oder die Pufferpolygone einer Objektgruppe nahe genug beieinander liegen, dass sie sich überschneiden, wird ein einzelnes Polygon zurückgegeben. Bei ausreichendem Abstand zwischen den Elementen einer gepufferten Objektgruppe ergeben die einzelnen "ST_Polygons" im Puffer einen "ST_MultiPolygon".
Die Funktion "ST_Buffer" akzeptiert sowohl positive als auch negative Distanzen, ein Puffer mit einer negativen Distanz kann jedoch nur für Geometrien mit der Dimension 2 ("ST_Polygon" und "ST_MultiPolygon") verwendet werden. Der absolute Wert des Pufferabstands wird verwendet, wenn die Dimension der Quellgeometrie kleiner als 2 ist, d. h. wenn alle Geometrien weder "ST_Polygons" noch "ST_MultiPolygons" sind. Im Allgemeinen gilt, dass positive Pufferabstände Polygonringe weg vom Zentrum der Quellgeometrie bzw. – für den äußeren Ring eines "ST_Polygon" oder "ST_MultiPolygon" – negative Distanzen Ringe in Richtung des Zentrums erzeugen. Bei inneren Ringen eines "ST_Polygon" oder "ST_MultiPolygon" befindet sich der Pufferring bei positiven Distanzen in Richtung des Zentrums und bei negativen Distanzen vom Zentrum weg. Durch den Pufferprozess werden Pufferpolygone zusammengeführt, die sich überschneiden. Negative Distanzen, die mehr als die Hälfte des maximalen Durchmessers eines Polygons ausmachen, führen zu einer leeren Geometrie.
Informationen zur Syntax und ein Beispiel zur Verwendung dieser Funktion finden Sie unter ST_Buffer.
ConvexHull
Die Funktion "ST_ConvexHull" gibt das konvexe Hüllpolygon einer beliebigen Geometrie mit mindestens drei Stützpunkten zurück, die ein konvexes Polygon bilden. Wenn die Stützpunkte der Geometrie kein konvexes Polygon bilden, gibt "ST_ConvexHull" den Wert Null zurück. Beispiel: Bei Verwendung von "ST_ConvexHull" für eine Linie mit zwei Stützpunkten wird der Wert null zurückgegeben. Entsprechend wird bei Verwendung von "ST_ConvexHull" für ein Punkt-Feature ebenfalls null zurückgegeben. Das Erstellen einer konvexen Hülle stellt häufig den ersten Schritt beim Tesselieren einer Reihe von Punkten zur Erstellung eines Triangular Irregular Network (TIN) dar.
Informationen zur Syntax und ein Beispiel zur Verwendung dieser Funktion finden Sie unter ST_ConvexHull.
Differenz zwischen Geometrien
Die Funktion "ST_Difference" gibt den Teil der primären Geometrie zurück, der nicht von der sekundären Geometrie geschnitten wird, also die räumliche Entsprechung des logischen AND NOT. Die Funktion "ST_Difference" kann nur für Geometrien mit ähnlichen Dimensionen verwendet werden und gibt eine Objektgruppe mit der gleichen Dimension wie die Quellgeometrien zurück. Wenn die Quellgeometrien gleich sind, wird eine leere Geometrie zurückgegeben.
Informationen zur Syntax und ein Beispiel zur Verwendung dieser Funktion finden Sie unter ST_Difference.
Schnittmenge von Geometrien
Die Funktion "ST_Intersection" gibt die Schnittmenge zweier Geometrien zurück. Die Schnittmenge wird immer als Objektgruppe zurückgegeben, die die kleinste Dimension der Quellgeometrien darstellt. Bei einem ST_LineString, der ein ST_Polygon schneidet, gibt die Funktion "ST_Intersection" beispielsweise den Teil des ST_LineString als ST_MultiLineString zurück, der der Innenseite und der Grenze des ST_Polygon entspricht. Der ST_MultiLineString enthält mehr als einen ST_LineString, wenn das ST_Polygon vom Quell-ST_LineString mit zwei oder mehr nicht verbundenen Segmenten geschnitten wird. Wenn sich die Geometrien nicht schneiden oder die Überschneidung eine kleinere Dimension als beide Quellgeometrien ergibt, wird eine leere Geometrie zurückgegeben. In der folgenden Abbildung werden einige Beispiele für die Funktion "ST_Intersection" veranschaulicht.Informationen zur Syntax und ein Beispiel zur Verwendung dieser Funktion finden Sie unter ST_Intersection.
Symmetrische Differenz zwischen Geometrien
Die Funktion "ST_SymmetricDiff" gibt die symmetrische Differenz zwischen zwei Geometrien zurück, also die räumliche Entsprechung des logischen XOR. Die Quellgeometrien müssen die gleiche Dimension aufweisen. Wenn die Geometrien gleich sind, gibt die Funktion "ST_SymmetricDiff" eine leere Geometrie zurück; andernfalls gibt die Funktion das Ergebnis als Objektgruppe zurück.
Informationen zur Syntax und ein Beispiel zur Verwendung dieser Funktion finden Sie unter ST_SymmetricDiff.
Vereinigung von Geometrien
Die Funktion "ST_Union" gibt die Vereinigungsmenge zweier Geometrien zurück, also die räumliche Entsprechung des booleschen logischen OR. Die Quellgeometrien müssen die gleiche Dimension aufweisen. "ST_Union" gibt das Ergebnis immer als Objektgruppe zurück.
Informationen zur Syntax und ein Beispiel zur Verwendung dieser Funktion finden Sie unter ST_Union.
Minimale Entfernung
Die vorherigen Funktionen haben neue Geometrien zurückgegeben. Die Funktion ST_Distance verwendet zwei Features als Eingabe und gibt die minimale Entfernung zwischen den beiden zurück.
Die minimale Entfernung zwischen zwei Features stellt die kürzeste Strecke zwischen zwei Positionen (Luftlinie) dar. Sie entspricht also nicht dem Weg, den Sie zurücklegen müssten, um mit einem Fahrzeug von einem Punkt zu einem anderen zu gelangen, sondern der Länge der Geraden, die zwischen den beiden Positionen auf der Karte gezogen werden kann. Die Funktion "ST_Distance" gibt die minimale Entfernung zwischen zwei nicht verbundenen Geometrien zurück. Wenn die Geometrien verbunden (d. h. lagegleich) sind, wird eine minimale Entfernung von Null zurückgegeben.
Aggregate
Bei Aggregatoperationen wird eine Geometrie als Resultat einer Analyse von mehreren Geometrien zurückgegeben. Die Funktion ST_Aggr_ConvexHull gibt das Multipolygon zurück, das die konvexen Hüllpolygone der einzelnen Eingabegeometrien bilden. Eingabegeometrien mit weniger als drei Stützpunkten besitzen keine konvexe Hülle. Wenn alle Eingabegeometrien weniger als drei Stützpunkte besitzen, gibt "ST_Aggr_ConvexHull" den Wert null zurück.
Die Funktion ST_Aggr_Intersection gibt eine Geometrie zurück, die eine Aggregation der Schnittmengen aller Eingabegeometrien ist. Bei einer Abfrage können zahlreiche Features ermittelt werden, die sich schneiden. Bei Verwendung des Operators "ST_Intersection" werden mehrere Features für die Schnittmengen der einzelnen Geometrien zurückgegeben. Beispiel: Wenn sich eine Line- und eine Point-Feature-Class schneiden, wird eine "ST_Point"-Geometrie pro Schnittmenge zurückgegeben.
Wenn Sie dagegen "ST_Aggr_Intersection" verwenden, erhalten Sie eine Geometrieobjektgruppe. Wenn beispielsweise die zuvor erwähnte Schnittmenge der Line- und Point-Feature-Classes mit einer Geometrie dargestellt werden soll, wird mit "ST_Aggr_Intersection" eine "ST_MultiPoint"-Geometrie bestehend aus allen Schnittmengen zurückgegeben. Wenn sich nur ein Punkt und eine Linie schneiden, erhalten Sie eine "ST_Point"-Geometrie.
Mit "ST_Aggr_Intersection" können Sie die Schnittmenge mehrerer Geometrien ermitteln, während Sie mit "ST_Intersection" nur die Schnittmenge von zwei Geometrien finden können. Beispiel: Wenn Sie nach einer Immobilie suchen, für die verschiedene Services verfügbar sind, z. B. Lage in einem bestimmten Schulbezirk, bestimmter Telefon-Service und High-Speed-Internet-Provider, und die im Zuständigkeitsbereich einer bestimmten Person liegt, müssen Sie die Schnittmenge aller Bereiche finden. Es würde Ihnen wenig helfen, wenn nur die Schnittmenge von zwei Bereichen ermittelt wird, weil dann nicht alle erforderlichen Informationen zurückgegeben werden. In diesem Fall müssen Sie die Funktion "sde.ST_Aggr_Intersection" verwenden, um alle Bereiche in derselben Abfrage zu bewerten.
Die Funktion ST_Aggr_Union gibt eine Geometrie zurück, die der Vereinigung aller angegebenen Geometrien entspricht. Die Eingabegeometrien müssen alle denselben Typ aufweisen. Sie können beispielsweise "ST_LineStrings" mit "ST_LineStrings" vereinigen bzw. "ST_Polygons" mit "ST_Polygons". Eine "ST_LineString"-Feature-Class kann dagegen nicht mit einer "ST_Polygon"-Feature-Class vereinigt werden. Die Geometrie, die bei der Aggregatvereinigung entsteht, ist in der Regel eine Objektgruppe. Beispiel: Wenn eine Aggregatvereinigung für alle freien Flurstücke mit einer Fläche von weniger als einem halben Hektar vorgenommen werden soll, wird ein Multipolygon zurückgegeben. Dies gilt nicht, wenn alle Flurstücke, die die Kriterien erfüllen, zusammenhängend sind. In diesem Fall wird ein Polygon zurückgegeben.