Funktionen für räumliche Operationen für 'ST_Geometry'

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 negativer Puffer kann jedoch nur für Geometrien mit der Dimension 2 ("ST_Polygon" und "ST_MultiPolygon") verwendet werden. Der absolute Wert der Pufferdistanz 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 Pufferdistanzen 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" ist der Pufferring bei positiven Distanzen in Richtung des Zentrums und bei negativen Distanzen vom Zentrum weg angeordnet. 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.

Puffer für verschiedene Geometrietypen (Puffer werden in Rot angezeigt oder verfügen in Schwarzweiß über dickere Außenlinien)

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.

HinweisHinweis:

In den folgenden vier Diagrammen sind die ersten Eingabegeometrien schwarz und die zweiten Eingabegeometrien orange gekennzeichnet.

Die Funktion "ST_Difference" gibt den Teil der ersten Geometrie zurück, der nicht von der sekundären Geometrie geschnitten wird.

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.

Die Funktion "ST_Intersection" gibt die Überschneidungsmenge als Geometrie zurück, die die kleinste Dimension der Quellgeometrien darstellt.
Die Funktion "ST_Intersection" gibt die Überschneidungsmenge als Geometrie zurück, die die kleinste Dimension der Quellgeometrien darstellt.
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.

'ST_SymmetricDiff' gibt die Teile der Quellgeometrien zurück, die nicht Teil der Schnittmenge sind. Die Quellgeometrien müssen die gleiche Dimension aufweisen.
'ST_SymmetricDiff' gibt die Teile der Quellgeometrien zurück, die nicht Teil der Schnittmenge sind. Die Quellgeometrien müssen die gleiche Dimension aufweisen.

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.

Die Funktion "ST_Union" gibt die Vereinigungsmenge zweier Geometrien zurück.
Die Funktion "ST_Union" gibt die Vereinigungsmenge zweier Geometrien 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 nicht unzusammenhängend (also lagegleich) sind, wird eine minimale Entfernung von Null zurückgegeben.

Kleinste Entfernung zwischen zwei Punkten

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 aus den konvexen Hüllpolygonen der einzelnen Eingabegeometrien besteht. Die Eingabegeometrien, die keine konvexe Hülle besitzen (also Eingabegeometrien mit weniger als drei Stützpunkten), werden bei dieser Methode nicht berücksichtigt. 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.

Verwandte Themen


7/10/2012