Geodaten-Funktionen in Athena-Engine-Version 2 - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Geodaten-Funktionen in Athena-Engine-Version 2

In diesem Thema werden die ESRI-Geodatenfunktionen aufgeführt, die ab der Athena-Engine-Version 2 unterstützt werden. Weitere Informationen über Athena-Engine-Versionen finden Sie unter Athena-Engine-Versionierung.

Änderungen in Athena-Engine-Version 2.

Athena unterstützt die folgenden Arten von koordinatenbasierten Funktionen:

Konstruktor-Funktionen

Mithilfe von Konstruktorfunktionen erhalten Sie binäre Werte der Geometriedatentypen point, line oder polygon. Sie können diese Funktionen auch verwenden, um binäre Daten in Text umzuwandeln und binäre Werte für Geometriedaten zu erhalten, die als Well-Known Text (WKT) ausgedrückt werden.

ST_AsBinary(geometry)

Gibt einen varbinären Datentyp zurück, der die WKB-Darstellung der angegebenen Geometrie enthält. Beispiel:

SELECT ST_AsBinary(ST_Point(-158.54, 61.56))

ST_AsText(geometry)

Konvertiert die einzelnen angegebenen Geometrie-Datentypen in Text. Gibt einen Wert mit dem Varchar-Datentyp zurück, der eine WKT-Darstellung des Geometrie-Datentyps ist. Beispiel:

SELECT ST_AsText(ST_Point(-158.54, 61.56))

ST_GeomAsLegacyBinary(geometry)

Gibt eine Legacy-Varbinary aus der angegebenen Geometrie zurück. Beispiel:

SELECT ST_GeomAsLegacyBinary(ST_Point(-158.54, 61.56)

ST_GeometryFromText(varchar)

Konvertiert Text im WKT-Format in einen Geometriedatentyp. Gibt einen Wert mit dem Geometrie-Datentyp zurück. Beispiel:

SELECT ST_GeometryFromText(ST_AsText(ST_Point(1, 2)))

ST_GeomFromBinary(varbinary)

Gibt ein Geometrietypobjekt aus einer WKB-Darstellung zurück. Beispiel:

SELECT ST_GeomFromBinary(ST_AsBinary(ST_Point(-158.54, 61.56)))

ST_GeomFromLegacyBinary(varbinary)

Gibt ein Geometrietypobjekt aus einem Legacy-Varbinary-Typ zurück. Beispiel:

SELECT ST_GeomFromLegacyBinary(ST_GeomAsLegacyBinary(ST_Point(-158.54, 61.56)))

ST_LineFromText(varchar)

Gibt einen Wert im Geometriedatentyp line zurück. Beispiel:

SELECT ST_Line('linestring(1 1, 2 2, 3 3)')

ST_LineString(array(point))

Gibt einen LineString-Geometrietyp zurück, der aus einem Array von Punktgeometrietypen gebildet wird. Wenn das angegebene Array weniger als zwei nicht leere Punkte enthält, wird eine leere LineString zurückgegeben. Löst eine Ausnahme aus, wenn ein Element im Array null, leer oder dasselbe wie das vorherige ist. Die zurückgegebene Geometrie ist möglicherweise nicht einfach. Abhängig von der angegebenen Eingabe kann sich die zurückgegebene Geometrie selbst schneiden oder doppelte Scheitelpunkte enthalten. Beispiel:

SELECT ST_LineString(ARRAY[ST_Point(-158.54, 61.56), ST_Point(-158.55, 61.56)])

ST_MultiPoint(array(point))

Gibt ein MultiPoint-Geometrieobjekt zurück, das aus den angegebenen Punkten gebildet wird. Gibt null zurück, wenn das angegebene Array leer ist. Löst eine Ausnahme aus, wenn ein Element im Array null oder leer ist. Die zurückgegebene Geometrie ist möglicherweise nicht einfach und kann doppelte Punkte enthalten, wenn das angegebene Array Duplikate aufweist. Beispiel:

SELECT ST_MultiPoint(ARRAY[ST_Point(-158.54, 61.56), ST_Point(-158.55, 61.56)])

ST_Point(double, double)

Gibt ein Objekt vom Geometrietyp point zurück. Als Eingabedatenwerte für diese Funktion verwenden Sie geometrische Werte, z. B. Werte im kartesischen Universal Transverse Mercator (UTM)-Koordinatensystem oder geografische Karteneinheiten (Längen- und Breitengrad) in Dezimalgraden. Die Längen- und Breitengradwerte verwenden das World Geodetic System, auch als WGS 1984 oder EPSG:4326 bezeichnet. WGS 1984 ist das vom Global Positioning System (GPS) verwendete Koordinatensystem.

In der folgenden Notation werden die Kartenkoordinaten beispielsweise in Längen- und Breitengraden angegeben. Der Wert .072284, bei dem es sich um die Pufferdistanz handelt, wird in Winkeleinheiten als Dezimalgrad angegeben:

SELECT ST_Buffer(ST_Point(-74.006801, 40.705220), .072284)

Syntax:

SELECT ST_Point(longitude, latitude) FROM earthquakes LIMIT 1

Im nächsten Beispiel werden bestimmte Längen- und Breitenkoordinaten verwendet:

SELECT ST_Point(-158.54, 61.56) FROM earthquakes LIMIT 1

Im nächsten Beispiel werden bestimmte Längen- und Breitenkoordinaten verwendet:

SELECT ST_Point(-74.006801, 40.705220)

Im folgenden Beispiel wird die ST_AsText-Funktion verwendet, um die Geometrie von WKT zu erhalten:

SELECT ST_AsText(ST_Point(-74.006801, 40.705220)) AS WKT

ST_Polygon(varchar)

Unter Verwendung der angegebenen Ordinatenreihenfolge im Uhrzeigersinn von links nach rechts wird ein Geometriedatentyp polygon zurückgegeben. Ab Athena-Engine-Version 2 werden nur Polygone als Eingaben akzeptiert. Beispiel:

SELECT ST_Polygon('polygon ((1 1, 1 4, 4 4, 4 1))')

to_geometry(sphericalGeography)

Gibt ein Geometrieobjekt aus dem angegebenen sphärischen Geographieobjekt zurück. Beispiel:

SELECT to_geometry(to_spherical_geography(ST_Point(-158.54, 61.56)))

to_spherical_geography(geometry)

Gibt ein sphärisches Geographieobjekt aus der angegebenen Geometrie zurück. Verwenden Sie diese Funktion, um ein Geometrieobjekt in ein kugelförmiges Geographieobjekt auf der Kugel des Radius der Erde zu konvertieren. Diese Funktion kann nur für POINT-, MULTIPOINT-, LINESTRING-, MULTILINESTRING-, POLYGON- und MULTIPOLYGON- Geometrien verwendet werden, die im 2D-Raum oder einer GEOMETRYCOLLECTION solcher Geometrien definiert sind. Für jeden Punkt der angegebenen Geometrie überprüft die Funktion, ob point.x innerhalb von [-180.0, 180.0] und point.y innerhalb von [-90.0, 90.0] liegt. Die Funktion verwendet diese Punkte als Längen- und Breitengrad, um die Form des sphericalGeography-Ergebnisses zu konstruieren.

Beispiel:

SELECT to_spherical_geography(ST_Point(-158.54, 61.56))

Koordinatenbasierte Verhältnisfunktionen

Die folgenden Funktionen drücken Beziehungen zwischen zwei verschiedenen Geometrien aus, die Sie als Eingabe angeben und Ergebnisse vom Typ boolean zurückgeben. Es ist wichtig, in welcher Reihenfolge Sie die Geometrien angeben: Der erste Geometriewert wird als linke Geometrie bezeichnet und der zweite Geometriewert als rechte Geometrie.

Diese Funktionen geben Folgendes zurück:

  • TRUE, wenn und nur wenn das von der Funktion beschriebene Verhältnis erfüllt ist.

  • FALSE, wenn und nur wenn das von der Funktion beschriebene Verhältnis nicht erfüllt ist.

ST_Contains(geometry, geometry)

Gibt TRUE zurück, wenn und nur wenn die linke Geometrie die rechte Geometrie enthält. Beispiele:

SELECT ST_Contains('POLYGON((0 2,1 1,0 -1,0 2))', 'POLYGON((-1 3,2 1,0 -3,-1 3))')
SELECT ST_Contains('POLYGON((0 2,1 1,0 -1,0 2))', ST_Point(0, 0))
SELECT ST_Contains(ST_GeometryFromText('POLYGON((0 2,1 1,0 -1,0 2))'), ST_GeometryFromText('POLYGON((-1 3,2 1,0 -3,-1 3))'))

ST_Crosses(geometry, geometry)

Gibt TRUE zurück, wenn und nur wenn die linke Geometrie die rechte Geometrie überschreitet. Beispiel:

SELECT ST_Crosses(ST_Line('linestring(1 1, 2 2 )'), ST_Line('linestring(0 1, 2 2)'))

ST_Disjoint(geometry, geometry)

Gibt TRUE zurück, wenn und nur wenn die Schnittmenge der linken und rechten Geometrie leer ist. Beispiel:

SELECT ST_Disjoint(ST_Line('linestring(0 0, 0 1)'), ST_Line('linestring(1 1, 1 0)'))

ST_Equals(geometry, geometry)

Gibt TRUE zurück, wenn und nur wenn die linke Geometrie die rechte Geometrie übereinstimmen. Beispiel:

SELECT ST_Equals(ST_Line('linestring( 0 0, 1 1)'), ST_Line('linestring(1 3, 2 2)'))

ST_Intersects(geometry, geometry)

Gibt TRUE zurück, wenn und nur wenn die linke Geometrie die rechte Geometrie schneidet. Beispiel:

SELECT ST_Intersects(ST_Line('linestring(8 7, 7 8)'), ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))

ST_Overlaps(geometry, geometry)

Gibt TRUE zurück, wenn und nur wenn die linke Geometrie sich mit der rechten Geometrie überschneidet. Beispiel:

SELECT ST_Overlaps(ST_Polygon('polygon((2 0, 2 1, 3 1))'), ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

ST_Relate(geometry, geometry, varchar)

Gibt TRUE zurück, wenn und nur wenn die linke Geometrie das angegebene DE-9IM (Dimensionally Extended nine-Intersection Model)-Verhältnis zu der rechten Geometrie hat. Die dritte (varchar) Eingabe übernimmt die Beziehung. Beispiel:

SELECT ST_Relate(ST_Line('linestring(0 0, 3 3)'), ST_Line('linestring(1 1, 4 4)'), 'T********')

ST_Touches(geometry, geometry)

Gibt TRUE zurück, wenn und nur wenn die linke Geometrie die rechte Geometrie berührt.

Beispiel:

SELECT ST_Touches(ST_Point(8, 8), ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

ST_Within(geometry, geometry)

Gibt TRUE zurück, wenn und nur wenn die linke Geometrie sich innerhalb der rechten Geometrie befindet.

Beispiel:

SELECT ST_Within(ST_Point(8, 8), ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

Operationsfunktionen

Verwenden Sie Operationsfunktionen, um Operationen auf den Werten des Geometrie-Datentyps auszuführen. Sie können beispielsweise die Grenzen eines einzelnen Geometrie-Datentyps, Schnittpunkte zwischen zwei Geometrie-Datentypen, Unterschiede zwischen linker und rechter Geometrie (sofern beide Geometrien denselben Datentyp aufweisen) oder einen externen Puffer oder Ring um einen bestimmten Geometrie-Datentyp abrufen.

geometry_union(array(geometry))

Gibt eine Geometrie zurück, die die Punktsatzunion der angegebenen Geometrien darstellt. Beispiel:

SELECT geometry_union(ARRAY[ST_Point(-158.54, 61.56), ST_Point(-158.55, 61.56)])

ST_Boundary(geometry)

Nimmt als Eingabe einen der Geometriedatentypen und gibt den boundary-Geometriedatentyp zurück.

Beispiele:

SELECT ST_Boundary(ST_Line('linestring(0 1, 1 0)')))
SELECT ST_Boundary(ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

ST_Buffer(geometry, double)

Nimmt als Eingabe einen der geometrischen Datentypen, wie z. B. Punkt, Linie, Polygon, Mehrfachzeile oder Mehrfachpolygon, und als Typ double einen Abstand an. Gibt den um den angegebenen Abstand (oder Radius) gepufferten Geometriedatentyp zurück. Beispiel:

SELECT ST_Buffer(ST_Point(1, 2), 2.0)

Im folgenden Beispiel werden die Kartenkoordinaten in Längen- und Breitengraden angegeben. Der Wert .072284, bei dem es sich um die Pufferdistanz handelt, wird in Winkeleinheiten als Dezimalgrad angegeben:

SELECT ST_Buffer(ST_Point(-74.006801, 40.705220), .072284)

ST_Difference(geometry, geometry)

Gibt eine Geometrie der Differenz zwischen der linken und der rechten Geometrie zurück. Beispiel:

SELECT ST_AsText(ST_Difference(ST_Polygon('polygon((0 0, 0 10, 10 10, 10 0))'), ST_Polygon('polygon((0 0, 0 5, 5 5, 5 0))')))

ST_Envelope(geometry)

Nimmt als Eingabe die Geometriedatentypen line, polygon, multiline und multipolygon. Unterstützt den Geometriedatentyp point nicht. Gibt die Hülle als Geometrie zurück, wobei eine Hülle ein Rechteck um den angegebenen Geometriedatentyp ist. Beispiele:

SELECT ST_Envelope(ST_Line('linestring(0 1, 1 0)'))
SELECT ST_Envelope(ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))

ST_EnvelopeAsPts(geometry)

Gibt ein Array von zwei Punkten zurück, die die untere linke und obere rechte Ecke des umgrenzenden rechteckigen Polygons einer Geometrie darstellen. Gibt null zurück, wenn die angegebene Geometrie leer ist. Beispiel:

SELECT ST_EnvelopeAsPts(ST_Point(-158.54, 61.56))

ST_ExteriorRing(geometry)

Gibt die Geometrie des äußeren Rings des Eingabetyps polygon zurück. Ab Athena-Engine-Version 2 sind Polygone die einzigen Geometrien, die als Eingaben akzeptiert werden. Beispiele:

SELECT ST_ExteriorRing(ST_Polygon(1,1, 1,4, 4,1))
SELECT ST_ExteriorRing(ST_Polygon('polygon ((0 0, 8 0, 0 8, 0 0), (1 1, 1 5, 5 1, 1 1))'))

ST_Intersection(geometry, geometry)

Gibt die Geometrie des Schnittpunkts der linken und rechten Geometrie zurück. Beispiele:

SELECT ST_Intersection(ST_Point(1,1), ST_Point(1,1))
SELECT ST_Intersection(ST_Line('linestring(0 1, 1 0)'), ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))
SELECT ST_AsText(ST_Intersection(ST_Polygon('polygon((2 0, 2 3, 3 0))'), ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))')))

ST_SymDifference(geometry, geometry)

Gibt die Geometrie der geometrisch symmetrischen Differenz zwischen der linken Geometrie und der rechten Geometrie zurück. Beispiel:

SELECT ST_AsText(ST_SymDifference(ST_Line('linestring(0 2, 2 2)'), ST_Line('linestring(1 2, 3 2)')))

ST_Union(geometry, geometry)

Gibt einen Geometriedatentyp zurück, der die Punktsatzunion der angegebenen Geometrien darstellt. Beispiel:

SELECT ST_Union(ST_Point(-158.54, 61.56),ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))

Zugriffsfunktionen

Mithilfe von Zugriffsfunktionen können Sie Werte der Typen varchar, bigint und double von unterschiedlichen geometry-Datentypen abrufen, wobei geometry einer der von Athena unterstützten Geometrie-Datentypen ist: point, line, polygon, multiline und multipolygon. Sie können beispielsweise einen Bereich eines polygon-Geometrie-Datentyps, die maximalen und minimalen X- und Y-Werte für einen angegebenen Geometrie-Datentyp, die Länge einer line oder die Anzahl der Punkte in einem angegebenen Geometrie-Datentyp abrufen.

geometry_invalid_reason(geometry)

Gibt in einem varchar-Datentyp den Grund zurück, warum die angegebene Geometrie ungültig oder nicht einfach ist. Wenn die angegebene Geometrie weder gültig noch einfach ist, wird der Grund zurückgegeben, warum sie ungültig ist. Wenn die angegebene Geometrie gültig und einfach ist, wird null zurückgegeben. Beispiel:

SELECT geometry_invalid_reason(ST_Point(-158.54, 61.56))

great_circle_distance(latitude1, longitude1, latitude2, longitude2)

Gibt als Double die Großkreisentfernung zwischen zwei Punkten auf der Erdoberfläche in Kilometern zurück. Beispiel:

SELECT great_circle_distance(36.12, -86.67, 33.94, -118.40)

line_locate_point(lineString, point)

Gibt ein Double zwischen 0 und 1 zurück, das die Position des nächsten Punkts auf der angegebenen Linienfolge zum angegebenen Punkt als Bruchteil der gesamten 2d-Linienlänge darstellt.

Gibt null zurück, wenn die angegebene Zeilenzeichenfolge oder der angegebene Punkt leer oder null ist. Beispiel:

SELECT line_locate_point(ST_GeometryFromText('LINESTRING (0 0, 0 1)'), ST_Point(0, 0.2))

simplify_geometry(geometry, double)

Verwendet den amer-douglas-peucker R-Algorithmus, um einen Geometriedatentyp zurückzugeben, der eine vereinfachte Version der angegebenen Geometrie ist. Vermeidet das Erstellen abgeleiteter Geometrien (insbesondere Polygone), die ungültig sind. Beispiel:

SELECT simplify_geometry(ST_GeometryFromText('POLYGON ((1 0, 2 1, 3 1, 3 1, 4 1, 1 0))'), 1.5)

ST_Area(geometry)

Übernimmt als Eingabe einen Geometrie-Datentyp und gibt einen Bereich vom Typ double zurück. Beispiel:

SELECT ST_Area(ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))

ST_Centroid(geometry)

Nimmt als Eingabe einen Geometriedatentyp polygon und gibt einen point-Geometriedatentyp zurück, der die Mitte der Polygonhülle ist. Beispiele:

SELECT ST_Centroid(ST_GeometryFromText('polygon ((0 0, 3 6, 6 0, 0 0))'))
SELECT ST_AsText(ST_Centroid(ST_Envelope(ST_GeometryFromText('POINT (53 27)'))))

ST_ConvexHull(geometry)

Gibt einen Geometriedatentyp zurück, der die kleinste konvexe Geometrie ist, die alle Geometrien in der angegebenen Eingabe umschließt. Beispiel:

SELECT ST_ConvexHull(ST_Point(-158.54, 61.56))

ST_CoordDim(geometry)

Übernimmt als Eingabe einen der unterstützten Geometrie-Datentypen und gibt die Anzahl der Koordinatenkomponenten mit dem Typ tinyint zurück. Beispiel:

SELECT ST_CoordDim(ST_Point(1.5,2.5))

ST_Dimension(geometry)

Übernimmt als Eingabe einen der unterstützten Geometrie-Datentypen und gibt die räumliche Dimension einer Geometrie mit dem Typ tinyint zurück. Beispiel:

SELECT ST_Dimension(ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))'))

ST_Distance(geometry, geometry)

Gibt basierend auf der räumlichen Referenz ein Double zurück, das den zweidimensionalen minimalen kartesischen Abstand zwischen zwei Geometrien in projizierten Einheiten enthält. Ab Athena-Engine-Version 2 wird null zurückgegeben, wenn eine der Eingaben eine leere Geometrie ist. Beispiel:

SELECT ST_Distance(ST_Point(0.0,0.0), ST_Point(3.0,4.0))

ST_Distance(sphericalGeography, sphericalGeography)

Gibt als Double den Abstand zwischen zwei sphärischen Geographiepunkten in Metern zurück. Beispiel:

SELECT ST_Distance(to_spherical_geography(ST_Point(61.56, -86.67)),to_spherical_geography(ST_Point(61.56, -86.68)))

ST_EndPoint(geometry)

Gibt den letzten Punkt eines line-Geometriedatentyps in einem point-Geometriedatentyp zurück. Beispiel:

SELECT ST_EndPoint(ST_Line('linestring(0 2, 2 2)'))

ST_Geometries(geometry)

Gibt ein Array mit Geometrien in der angegebenen Sammlung zurück. Wenn es sich bei der angegebenen Geometrie nicht um eine Multi-Geometrie handelt, wird ein Array mit einem Element zurückgegeben. Gibt null zurück, wenn die angegebene Geometrie leer ist.

Bei einem gegebenen MultiLineString-Objekt erstellt ST_Geometries beispielsweise ein Array von LineString-Objekten. Bei einem GeometryCollection-Objekt gibt ST_Geometries ein nicht abgeflachtes Array seiner Bestandteile zurück. Beispiel:

SELECT ST_Geometries(GEOMETRYCOLLECTION(MULTIPOINT(0 0, 1 1), GEOMETRYCOLLECTION(MULTILINESTRING((2 2, 3 3)))))

Ergebnis:

array[MULTIPOINT(0 0, 1 1),GEOMETRYCOLLECTION(MULTILINESTRING((2 2, 3 3)))]

ST_GeometryN(geometry, index)

Gibt als Geometriedatentyp das Geometrieelement an einem angegebenen ganzzahligen Index zurück. Indizes beginnen bei 1. Wenn die angegebene Geometrie eine Sammlung von Geometrien ist (z. B. ein GEOMETRYCOLLECTION- oder MULTI*-Objekt), wird die Geometrie am angegebenen Index zurückgegeben. Wenn der angegebene Index kleiner als 1 oder größer als die Gesamtzahl der Elemente in der Auflistung ist, wird null zurückgegeben. Um die Gesamtanzahl der Elemente zu ermitteln, verwenden Sie ST_NumGeometries. Singuläre Geometrien (z. B. POINT, LINESTRING, oder POLYGON), werden als Sammlungen eines Elements behandelt. Leere Geometrien werden als leere Sammlungen behandelt. Beispiel:

SELECT ST_GeometryN(ST_Point(-158.54, 61.56),1)

ST_GeometryType(geometry)

Gibt den Typ der Geometrie als varchar zurück. Beispiel:

SELECT ST_GeometryType(ST_Point(-158.54, 61.56))

ST_InteriorRingN(geometry, index)

Gibt das innere Ringelement am angegebenen Index zurück (Indizes beginnen bei 1). Wenn der angegebene Index kleiner als 1 oder größer als die Gesamtanzahl der inneren Ringe in der angegebenen Geometrie ist, wird null zurückgegeben. Löst einen Fehler aus, wenn die angegebene Geometrie kein Polygon ist. Um die Gesamtanzahl der Elemente zu ermitteln, verwenden Sie ST_NumInteriorRing. Beispiel:

SELECT ST_InteriorRingN(st_polygon('polygon ((0 0, 1 0, 1 1, 0 1, 0 0))'),1)

ST_InteriorRings(geometry)

Gibt ein Geometrie-Array aller inneren Ringe zurück, die in der angegebenen Geometrie gefunden werden, oder ein leeres Array, wenn das Polygon keine inneren Ringe hat. Gibt null zurück, wenn die angegebene Geometrie leer ist. Wenn die angegebene Geometrie kein Polygon ist, wird ein Fehler ausgelöst. Beispiel:

SELECT ST_InteriorRings(st_polygon('polygon ((0 0, 1 0, 1 1, 0 1, 0 0))'))

ST_IsClosed(geometry)

Als Eingabe werden nur die Geometriedatentypen line und multiline verwendet. Gibt TRUE (Typ boolean) zurück, wenn und nur wenn die Linie geschlossen ist. Beispiel:

SELECT ST_IsClosed(ST_Line('linestring(0 2, 2 2)'))

ST_IsEmpty(geometry)

Als Eingabe werden nur die Geometriedatentypen line und multiline verwendet. Gibt TRUE (Typ boolean) zurück, wenn und nur wenn die angegebene Geometrie leer ist, d. h., wenn die line- Anfangs- und Endwerte übereinstimmen. Beispiel:

SELECT ST_IsEmpty(ST_Point(1.5, 2.5))

ST_IsRing(geometry)

Gibt TRUE (Typ boolean) zurück, wenn und nur wenn der line-Typ geschlossen und einfach ist. Beispiel:

SELECT ST_IsRing(ST_Line('linestring(0 2, 2 2)'))

ST_IsSimple(geometry)

Gibt true zurück, wenn die angegebene Geometrie keine anomalen geometrischen Punkte aufweist (z. B. Selbstschnittstellen oder Selbsttangentialität). Um festzustellen, warum die Geometrie nicht einfach ist, verwenden Sie geometry_invalid_reason(). Beispiel:

SELECT ST_IsSimple(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))

ST_IsValid(geometry)

Gibt true zurück, wenn und nur wenn die angegebene Geometrie gut geformt ist. Um festzustellen, warum die Geometrie nicht gut geformt ist, verwenden Sie geometry_invalid_reason(). Beispiel:

SELECT ST_IsValid(ST_Point(61.56, -86.68))

ST_Length(geometry)

Gibt die Länge von line mit dem Typ double zurück. Beispiel:

SELECT ST_Length(ST_Line('linestring(0 2, 2 2)'))

ST_NumGeometries(geometry)

Gibt als Ganzzahl die Anzahl der Geometrien in der Sammlung zurück. Wenn die Geometrie eine Sammlung von Geometrien ist (z. B. ein GEOMETRYCOLLECTION- oder MULTI*-Objekt), wird die Anzahl der Geometrien zurückgegeben. Einzelne Geometrien geben 1 zurück; leere Geometrien geben 0 zurück. Eine leere Geometrie in einem GEOMETRYCOLLECTION-Objekt zählt als eine Geometrie. Das folgende Beispiel wird beispielsweise zu 1 ausgewertet:

ST_NumGeometries(ST_GeometryFromText('GEOMETRYCOLLECTION(MULTIPOINT EMPTY)'))

ST_NumInteriorRing(geometry)

Gibt die Anzahl an inneren Ringen in der polygon-Geometrie mit dem Typ bigint zurück. Beispiel:

SELECT ST_NumInteriorRing(ST_Polygon('polygon ((0 0, 8 0, 0 8, 0 0), (1 1, 1 5, 5 1, 1 1))'))

ST_NumPoints(geometry)

Gibt die Anzahl an Punkten in der Geometrie mit dem Typ bigint zurück. Beispiel:

SELECT ST_NumPoints(ST_Point(1.5, 2.5))

ST_PointN(lineString, index)

Gibt als Punktgeometrie-Datentyp den Scheitelpunkt der angegebenen Linienzeichenfolge am angegebenen ganzzahligen Index zurück. Indizes beginnen bei 1. Wenn der angegebene Index kleiner als 1 oder größer als die Gesamtzahl der Elemente in der Auflistung ist, gibt null zurück. Um die Gesamtanzahl der Elemente zu ermitteln, verwenden Sie ST_NumPoints. Beispiel:

SELECT ST_PointN(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]),1)

ST_Points(geometry)

Gibt ein Array von Punkten aus dem angegebenen Linien-Zeichenfolgen-Geometrieobjekt zurück. Beispiel:

SELECT ST_Points(ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))

ST_StartPoint(geometry)

Gibt den ersten Punkt eines line-Geometriedatentyps in einem point-Geometriedatentyp zurück. Beispiel:

SELECT ST_StartPoint(ST_Line('linestring(0 2, 2 2)'))

ST_X(point)

Gibt die X-Koordinate eines Punkts mit dem Typ double zurück. Beispiel:

SELECT ST_X(ST_Point(1.5, 2.5))

ST_XMax(geometry)

Gibt die maximale X-Koordinate einer Geometrie mit dem Typ double zurück. Beispiel:

SELECT ST_XMax(ST_Line('linestring(0 2, 2 2)'))

ST_XMin(geometry)

Gibt die minimale X-Koordinate einer Geometrie mit dem Typ double zurück. Beispiel:

SELECT ST_XMin(ST_Line('linestring(0 2, 2 2)'))

ST_Y(point)

Gibt die Y-Koordinate eines Punkts mit dem Typ double zurück. Beispiel:

SELECT ST_Y(ST_Point(1.5, 2.5))

ST_YMax(geometry)

Gibt die maximale Y-Koordinate einer Geometrie mit dem Typ double zurück. Beispiel:

SELECT ST_YMax(ST_Line('linestring(0 2, 2 2)'))

ST_YMin(geometry)

Gibt die minimale Y-Koordinate einer Geometrie mit dem Typ double zurück. Beispiel:

SELECT ST_YMin(ST_Line('linestring(0 2, 2 2)'))

Aggregationsfunktionen

convex_hull_agg(geometry)

Gibt die minimale konvexe Geometrie zurück, die alle Geometrien umschließt, die als Eingabe übergeben wurden.

geometry_union_agg(geometry)

Gibt eine Geometrie zurück, die die Punktsatzvereinigung aller Geometrien darstellt, die als Eingabe übergeben werden.

Bing-Kachelfunktionen

Die folgenden Funktionen konvertieren zwischen Geometrien und Kacheln im Microsoft-Bing-Maps-Kachelsystem.

bing_tile(x, y, zoom_level)

Gibt ein Bing-Kachelobjekt aus ganzzahligen Koordinaten x und y und der angegebenen Zoomstufe zurück. Die Zoomstufe muss eine Ganzzahl zwischen 1 und 23 sein. Beispiel:

SELECT bing_tile(10, 20, 12)

bing_tile(quadKey)

Gibt ein Bing-Kachelobjekt aus einem Quadkey zurück. Beispiel:

SELECT bing_tile(bing_tile_quadkey(bing_tile(10, 20, 12)))

bing_tile_at(latitude, longitude, zoom_level)

Gibt ein Bing-Kachelobjekt mit dem angegebenen Breiten-, Längen- und Zoomgrad zurück. Der Breitengrad muss zwischen -85.05112878 und 85.05112878 liegen. Der Längengrad muss zwischen -180 und 180 liegen. Die latitude- und longitude-Werte müssen double und zoom_level eine ganze Zahl sein. Beispiel:

SELECT bing_tile_at(37.431944, -122.166111, 12)

bing_tiles_around(latitude, longitude, zoom_level)

Gibt ein Array von Bing-Kacheln zurück, die den angegebenen Breiten- und Längengradpunkt auf der angegebenen Zoomstufe umgeben. Beispiel:

SELECT bing_tiles_around(47.265511, -122.465691, 14)

bing_tiles_around(latitude, longitude, zoom_level, radius_in_km)

Gibt auf der angegebenen Zoomstufe ein Array von Bing-Kacheln zurück. Das Array enthält den minimalen Satz von Bing-Kacheln, die einen Kreis mit dem angegebenen Radius in Kilometern um den angegebenen Breiten- und Längengrad abdecken. Die latitude-, longitude- und radius_in_km-Werte sind double; die Zoomstufe ist eine integer. Beispiel:

SELECT bing_tiles_around(37.8475, 112.596667, 10, .5)

bing_tile_coordinates(tile)

Gibt die x- und y-Koordinaten der angegebenen Bing-Kachel zurück. Beispiel:

SELECT bing_tile_coordinates(bing_tile_at(37.431944, -122.166111, 12))

bing_tile_polygon(tile)

Gibt die Polygondarstellung der angegebenen Bing-Kachel zurück. Beispiel:

SELECT bing_tile_polygon(bing_tile_at(47.265511, -122.465691, 4))

bing_tile_quadkey(tile)

Gibt den Quadkey der angegebenen Bing-Kachel zurück. Beispiel:

SELECT bing_tile_quadkey(bing_tile(52, 143, 10))

bing_tile_zoom_level(tile)

Gibt die Zoomstufe der angegebenen Bing-Kachel als Ganzzahl zurück. Beispiel:

SELECT bing_tile_zoom_level(bing_tile(52, 143, 10))

geometry_to_bing_tiles(geometry, zoom_level)

Gibt den Mindestsatz von Bing-Kacheln zurück, der die angegebene Geometrie auf der angegebenen Zoomstufe vollständig abdeckt. Zoomstufen von 1 bis 23 werden unterstützt. Beispiel:

SELECT geometry_to_bing_tiles(ST_Point(61.56, 58.54), 10)